使用WakeLock保持流播放

yyd*_*ydl 9 android media-player wakelock

我在一个服务中运行的MediaPlayer正在播放来自URL(流媒体)的音频.截至目前,它似乎运作良好,甚至在我将手机置于待机状态时继续播放.

我目前没有获得唤醒锁.我的问题是:

  • 在我的情况下,是否真的有必要获得唤醒锁?
  • 如果有必要,我应该获得什么类型的唤醒锁?

是的,这是唤醒锁的合法用例,因为我的用户明确希望音频继续播放.

Dyl*_*les 14

  1. 在待机状态下观看手机约五分钟.如果继续播放,则不需要唤醒锁定; 它可能表明MediaPlayer实例已经有一个.在Android中,在用户闲置约两分钟之后,任何没有唤醒锁定的非必要内容将被暂停; 五分钟应该消除围绕两分钟计时器的任何疑问.
  2. 尝试部分唤醒锁定.它会让您的用户听到音频,因为处理器将保持"清醒"状态.但是,当屏幕被允许进入睡眠状态时,它不会在显示图像时浪费电池.这可能就是你想要的.

编辑:如果你想在安全的一面玩,那么你想使用WakeLock.这样,如果MediaPlayer发生变化并且在手机暂停程序时允许进入睡眠状态仍然可以正常工作.添加WakeLock确实没有什么可失去的,只要不再需要它就可以正确地释放它.如果你不这样做,你会简单地漏比你打算和,在最坏的情况下更多的电池,你会马上看到这表明你当你的应用程序终止并未解除锁定的错误.添加WakeLock虽然可能是多余的 - 但这是一种很好的做法,因为它可以使您的应用程序更加强大,以防止对其所依赖的软件进行更改.

  • 获得多个唤醒锁定肯定是可以的.唤醒锁定的意思是"在保持CPU保持清醒的同时".如果您持有两个唤醒锁定,那么您只需要两个让CPU保持清醒的东西,就像您期望它保持清醒一样. (2认同)

hac*_*bod 10

默认情况下,MediaPlayer不会自动为您执行此操作.

但是,它不是你必须获得一个唤醒锁,它有一个方法,你可以打电话告诉它在玩游戏时为你拿一个:

http://developer.android.com/reference/android/media/MediaPlayer.html#setWakeMode(android.content.Context,int)

请注意,正如文档所述,仍然是您的应用程序持有唤醒锁定,因此要使用此功能,您需要请求唤醒锁定权限.

  • 那么媒体播放器有可能突然停止播放吗?或者这只是一个额外的预防措施?如果MediaPlayer获得锁定有什么区别,或者我做了什么? (4认同)