使用激活锁定保持流播放

问题描述 投票:9回答:6

我有一个MediaPlayer的在正在播放的音频从URL(流)服务运行。截至目前它似乎很好地工作,甚至继续当我把手机在待机播放。

我目前还没有获得一个激活锁定。我的问题是:

  • 它实际上是要收购我的境遇唤醒锁定?
  • 如果有必要,我应该购买什么类型的唤醒锁定的?

是的,这是一个合法的用例为激活锁定,因为我的用户明确希望将音频继续播放。

android media-player wakelock
6个回答
10
投票

MediaPlayer的不为你自动默认情况下做到这一点。

然而,而不是你不必获得唤醒锁,它拥有你可以打电话告诉它持有一个给你,而玩的方法:

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

需要注意的是,由于文件说,它仍然是你的应用程序保持唤醒锁,以便使用该功能,您将需要请求之后锁定许可。


14
投票
  1. 观看手机约五分钟,当它处于待机状态。如果继续打,你并不需要一个唤醒锁;它可能表明MediaPlayer的实例已经具有一个。在Android中,大约两分钟从用户的任何非必要的,其是不具有激活锁定将被暂停无活动后; 5分钟应去除环境两分钟计时器有任何疑问。
  2. 尝试partial wake lock.这将让用户听到声音的处理器将保持“清醒”。但是,它不会因为屏幕被允许进入睡眠状态显示图像废电池。这可能是你想要的。

编辑:如果你想在安全的地方玩耍,那么你需要使用激活锁定。这样,如果MediaPlayer的发生了改变,并且被允许去的时候,手机暂停你的程序仍能正常工作睡觉。真的有什么通过将激活锁定为您提供您corretly释放时不再需要它丢失。如果你不这样做,你会简单地漏比你打算和,在最坏的情况下更多的电池,你会马上看到这表明你当你的应用程序终止并未解除锁定的错误。添加唤醒锁定 - 而潜在的冗余 - 是一个很好的做法,因为它使你的应用程序了反对修改它取决于软件更加健壮。


4
投票

你可能会需要一个唤醒锁定,因为你不能保证在电源管理器不会踢,播放时睡觉。该PARTIAL_WAKE_LOCK将确保电池消耗的最低级别,采用(CPU上;屏幕/键盘关闭)。你随时可以测试电池消耗的影响,但我怀疑这将是大的,因为CPU必须是无论如何,以播放音乐。这种方法将确保无论使用什么手机(或设置表示电话),播放将不会从CPU临睡前进行切割。


1
投票

我不认为你需要为这个激活锁定。当第一次开始接触的MediaPlayer,我飞快的,它只是不会在待机闭嘴发现。我花了工作的一点点只是为了克服这一点,但我从来没有见过,其中待机导致流MediaPlayer对象死亡的情况。


0
投票
  mediaPlayer.setScreenOnWhilePlaying(true);

文档说:“这是在‘setWakeMode’的首选方法,其中可能的,因为它不需要应用程序对低级别的唤醒锁访问权限。”


-1
投票

你并不需要唤醒锁。如果你使用WAKE LOCK,你会强迫用户保持他们的屏幕上,我个人更喜欢关闭屏幕同时播放的媒体。

长时间运行的服务hereexample的实施例

© www.soinside.com 2019 - 2024. All rights reserved.