我已经制作了一个基本的广播播放器,使它能够播放的代码在下面,并且除了setWakeMode方法之外,它们都能正常工作。当我将手机置于待机状态时,音频将在长达2分钟的时间内正常播放,然后开始停止播放。有任何想法吗?

N.B. radioPlayer是MediaPlayer的一个实例。

public boolean startRadio()
{
    try
    {
        String url = getString(R.string.radioURL); // Radio url.
        radioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        radioPlayer.setDataSource(url);
        radioPlayer.prepare(); // might take long! (for buffering, etc)

        radioPlayer.setWakeMode(this.getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
        radioPlayer.start();
        return true;
    }
    catch(Exception e)
    {
        showAlert(getString(R.string.error), getString(R.string.radioError));
        radioPlayer.release();
        radioPlayer = new MediaPlayer();
        return false;
    }
}


更新:在检查了其他地方的另一个线程之后,我发现此问题似乎是HTC手机所特有的,实际上,即使根本没有唤醒锁,我的Samsung Galaxy Tab也能幸免。有任何想法吗?

最佳答案

由于Wifi进入睡眠模式,因此MediaPlayer停止了,因此您应该尝试使用WifiLock来防止这种情况。

08-05 08:22