我的应用程序流式传输音乐,我希望能够暂停/播放/跳过可能支持这些按钮(汽车,耳机等)的任何蓝牙设备.当通过汽车的蓝牙连接时,音频会自动进入,但控制按钮不会影响我应用的音频流.它改为打开默认的媒体播放器.如何路由这些按钮以影响我的应用程序?
Joe*_*Joe 17
您是否BroadcastReceiver在应用中注册了一个用于收听MEDIA_BUTTON事件的人AudioManager.registerMediaButtonEventReceiver()?
注册后,可以通过处理KeyEvent附加项中附加的对象来处理按钮事件EXTRA_KEY_EVENT.例如:
@Override
public void onReceive(Context context, Intent intent) {
final KeyEvent event = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event.getAction() != KeyEvent.ACTION_DOWN) return;
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_MEDIA_STOP:
// stop music
break;
case KeyEvent.KEYCODE_HEADSETHOOK:
case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE:
// pause music
break;
case KeyEvent.KEYCODE_MEDIA_NEXT:
// next track
break;
case KeyEvent.KEYCODE_MEDIA_PREVIOUS:
// previous track
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这个Android开发者博客文章也有关于这个主题的一些很好的信息.
小智 5
除了接受的答案之外,请注意冰淇淋三明治中的一个密码已经改变:
在ICS中,播放/暂停意图传递的密钥代码已更改.请参阅 http://code.google.com/p/media-button-router/issues/detail?id=10#c5
在ICS之前发送的密钥是KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE.现在有两个独立的播放和暂停键码(126和127).
它正在发送KEYCODE_MEDIA_PLAY(126)和KEYCODE_MEDIA_PAUSE(127).
https://code.google.com/p/android/issues/detail?id=23172
| 归档时间: |
|
| 查看次数: |
11494 次 |
| 最近记录: |