当设备进入睡眠模式时无线电流停止

Radio Stream stops when device goes to sleep mode

我有一个带有后台服务的简单应用程序,可以使用媒体播放器播放无线电流,但媒体播放器在我锁定 phone 后 2-3 分钟停止...

我的后台服务代码:

public class ServiceMusic extends Service {
MediaPlayer mediaPlayer;

@Override
public IBinder onBind(Intent intent) {
    // TODO Auto-generated method stub
    return null;
}
@Override
public void onCreate() {
    if (mediaPlayer != null) {
        if (mediaPlayer.isPlaying()) {
            mediaPlayer.release();
            mediaPlayer = null;
        }
    }

    mediaPlayer = new MediaPlayer();
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    try {
        mediaPlayer.setDataSource(this, Uri.parse("http://188.40.62.20:8014"));
        mediaPlayer.prepare();
    }catch (IOException e){
        Log.e("---------------","---------------------: " + e.getMessage());
    }
}
@Override
public void onStart(Intent intent, int startid) {
    mediaPlayer.start();
}
@Override
public void onDestroy() {
    mediaPlayer.stop();
}

我已经在onCreate中写了,但它仍然停止...

PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyWakelockTag");
wakeLock.acquire();

然后我添加到 mediaPlayer 唤醒模式,但这也有帮助

mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);

并且我向 android 清单文件添加了权限 WAKE_LOCK...

我希望有人能帮助我。

如果您没有使用前台服务来执行 运行 后台任务,那么服务可能会被 activity 破坏,这也会在设备锁定时发生,看看这个回答它可能对你的情况有帮助:

干杯!!