我在 Lollipop 设备上遇到了 MediaPlayer 的问题。基本上,当设备屏幕关闭(即用户锁定设备)时,播放会继续,但提前结束约 1 - 2 秒。但屏幕打开时不会发生这种情况。
我在 MediaPlayer 上有一个 onCompletionListener:
@Override
public void onCompletion(final MediaPlayer mediaPlayer) {
int progress = mediaPlayer.getCurrentPosition();
int duration = mediaPlayer.getDuration();
Log.d("PlaybackController", "progress: " + progress + " duration: " + duration);
Log.d("PlaybackController", "Delay: " + (duration - progress)); // I'm seeing a difference of 1 - 3 seconds :(.
mServiceHandler.postDelayed(new Runnable() {
@Override
public void run() {
broadcastCompleted();
}
}, Math.max(duration - progress, 0));
}
这通常会打印:Delay: [1500 - 3000]
。我想知道是否缺少唤醒锁,但我正在制作此处提到的正确锁:http://developer.android.com/guide/topics/media/mediaplayer.html,其中包括 PARTIAL_WAKE_LOCK 和 WifiLock。我还缺少其他东西吗?
好吧,问题似乎是 Android 5.0.1 的实验性 MediaPlayer(称为 NuPlayer)。 NuPlayer 在所有 Android 5.0.1 设备上默认启用,只能通过开发者选项禁用。我在这里提交了针对 Android 的错误:
以下是当用户在 Android 5.0.1 设备上遇到媒体播放问题时可以向其发送的示例电子邮件:
看起来这可能是 Android 的新实验性 MediaPlayer(称为 NuPlayer)上的一个错误。要解决此问题,请按照下列步骤操作:
- 前往安卓设置
- 转到“关于电话”
- Scroll down to "Build Number" and tap the Build number 7 times.
- 您将看到一条消息:“您现在距离成为开发人员还差 X 步”。
- 点击 7 次后,会显示“您现在是开发者了!”
- 返回主设置屏幕,您将在“关于手机”上方看到一个名为“开发者选项”的新选项
- 进入开发者选项并取消选择“媒体”部分下的“使用 NuPlayer(实验)”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)