这个问题可能是由于 MediaPlayer 的自动休眠功能导致的。为了避免这个问题,可以通过设置 MediaPlayer 的唤醒模式来禁用自动休眠功能。
以下是示例代码:
MediaPlayer mediaPlayer = new MediaPlayer();
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK);
} else {
mediaPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
}
这里我们使用了 setWakeMode()
方法来设置 MediaPlayer 的唤醒模式。PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK
将屏幕关闭并打开得到了控制,而 PowerManager.PARTIAL_WAKE_LOCK
则只保持 CPU 转动,屏幕和键盘灯保持关闭状态。
通过禁用自动休眠功能,你的 MediaPlayer 将能够在前台服务中持续播放音乐。