0

我的应用正在使用 MediaPlayer 播放音乐。我的应用在 AndroidManifest.xml 中有“android.permission.WAKE_LOCK”。我的手机设置了“自适应电池”关闭,“省电模式”关闭,并且我的应用程序的“省电排除”已打开。当手机连接到充电器时,我的应用程序工作正常。但。当手机未连接到充电器并且调用“onCompletionListener”并将下一首歌曲加载到 MediaPlayer 时,它会停止播放。如果从桌子上拿手机 - 不要打开屏幕,只需移动手机 - 它会继续播放。

我创建了一个计时器,每 500 毫秒调用一次我的程序。此过程检查播放器是否正在播放,如果是曲目的第一秒或曲目的最后一秒,它会将信息写入日志。因此,当手机正在充电并且应用程序运行正常时,我可以看到该程序正在写入日志,例如

21:45:50.123 playing 2 ms of 100000
21:45:50.723 playing 502 ms of 100000
... 9 minutes of music...
21:45:59.007 playing 999012 ms of 100000
21:45:59.600 playing 999789 ms of 100000
...then next song is loaded...

当手机没有充电并且 MediaPlayer 停止播放时,它看起来像

21:45:50.123 playing 2 ms of 100000
21:45:50.126 playing 6 ms of 100000
21:45:50.130 playing 8 ms of 100000
21:45:50.132 playing 10 ms of 100000
.... and many many times like this. 

所以看起来我的计时器程序不是每 500 毫秒调用一次,而是每 2 或 3 毫秒调用一次。

日志的时间戳取自 currentTimeMillis();

我也写日志

Thread.currentThread().getId() (it's the same thread every time)
PowerManager.isDeviceIdleMode() (no, it is not idle)
and PowerManager.isPowerSaveMode() (no it is not)

请帮助我 - 我能做些什么来防止 MediaPlayer 停止?

4

0 回答 0