我正在研究一个应用程序,它使用MediaPlayer对象从WallpaperService播放H.264 MP4视频,因为它是一个动态壁纸应用程序。如果使用mediaPlayer.pause()或mediaPlayer.stop()暂停/停止MediaPlayer,则设备(Nexus 5,Android 6.0.1)处于空闲和睡眠状态时会发生电池消耗。过夜多次测试时,排水量约为3-7%/小时。只要我用mediaPlayer.release()发布媒体播放器,电池消耗就会以更正常的1%/小时的速度回落。当onVisibilityChanged调用false时,我暂停/停止mediaPlayer。据报道,该手机将在股票的Android电池图表和更好的电池统计数据中入睡。不释放MediaPlayer导致电池消耗
如果CPU正在成功进入睡眠状态,如何解决电池耗尽问题?
编辑:我发现的新东西是,当在mediaPlayer.pause()之前调用mediaPlayer.setSurface(null)时,闲置电池的使用恢复正常。然后,我可以在mediaPlayer.start()之前将mediaPlayer.setSurface(surface)设置回来。问题是重启后几秒钟内会出现一些黑色伪像。
感谢您的建议。看着暂停()它导致我不能检查的本地方法。我发现的新东西是,如果在mediaPlayer.pause()之前执行mediaPlayer.setSurface(null),闲置电池的使用将恢复正常。然后,我可以在mediaPlayer.start()之前将mediaPlayer.setSurface(surface)设置回来。问题是在重启后几秒钟内会出现一些黑色伪像。 – Flyview
新编辑:mediaPlayer.stop()也会发生同样的情况。如果你不做mediaPlayer.release(),电池耗尽仍在继续。 – Flyview