【发布时间】:2016-08-28 18:35:26
【问题描述】:
当我的应用停止时单击耳机按钮时,我正尝试从我的应用开始音乐播放。
我可以使用 MediaSession.Callback onMediaButtonEvent() 或现在已弃用的 registerMediaButtonEventReceiver() 来收听媒体按钮单击 WHILE 我的应用正在播放音乐,但如果我暂停音乐一分钟,我的活动和播放服务仍在运行,然后我按下耳机按钮,我看到我失去了接收媒体按钮广播的能力。而是打开 Google Now。
我正在尝试做的是类似于 Google Play 音乐的东西。即使应用完全停止,它也能开始播放音乐...后台没有任何服务。
我觉得setMediaButtonReceiver() 是用于此的,但我无法让它工作。
setMediaButtonReceiver(PendingIntent mbr)
为您的媒体按钮接收器设置待处理意图,以允许在会话停止后重新开始播放。如果您的应用以这种方式启动,则会通过待处理的 Intent 发送 ACTION_MEDIA_BUTTON Intent。
我的服务中有以下 sn-p。
PendingIntent pi = PendingIntent.getBroadcast(HeadsetService.this, 0, new Intent(HeadsetService.this, RemoteControlReceiver.class), 0);
mMediaSession.setMediaButtonReceiver(pi);
我的 RemoteControlReceiver BroadcastReceiver 已在 Manifest 中注册,但按下按钮时我没有收到广播。
我还发现,其他音乐播放器应用一旦停止播放大约一分钟,就会失去接收媒体按钮广播的能力。
有什么想法可以让我拥有更强大的媒体按钮控件吗?
提前致谢!
【问题讨论】:
-
所以已经有一段时间了。你有运气吗?
标签: android android-mediaplayer android-audiomanager android-broadcastreceiver android-mediasession