标题:处理KEYCODE_MEDIA_NEXT中断音乐播放
在我的Android应用程序中,我想以自己的方式处理我的蓝牙音箱中的下一个键。按键时我想提高/降低音量。但每次按下硬件键我都会中断。中断大概是半秒钟。该 应用程序在中断后(不是之前)接收广播。扬声器是“EasyAcc Mini 2 Portabler 4.1蓝牙”扬声器。
以下代码段显示了实现:
的AndroidManifest.xml:
<receiver android:name=".services.player.BluetoothMediaReceiver">
<intent-filter android:priority="999999999">
<action android:name="android.intent.action.MEDIA_BUTTON" />
</intent-filter>
</receiver>
注册蓝牙接收器:
AudioManager audioManager = (AudioManager)activity.getSystemService(Context.AUDIO_SERVICE);
Intent i = new Intent(activity, BluetoothMediaReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(activity, 1, i, 0);
audioManager.registerMediaButtonEventReceiver(pi);
BluetoothMediaReceiver是广播接收器
最后是接收方法:
protected void processReceive(Context context, Intent intent) {
KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (key.getAction() == KeyEvent.ACTION_DOWN) {
if (key.getKeyCode() == KeyEvent.KEYCODE_MEDIA_NEXT) {
volumeChanger.volumeUp();
}
else if (key.getKeyCode() == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
volumeChanger.volumeDown();
}
}
abortBroadcast();
}
在processReceive方法中创建断点时,音乐中断后会触发断点。
我使用MediaPlayer播放mp3文件中的音乐。虽然我听不到音乐,但播放器继续播放(不停顿)。
任何人都可以给我一个提示,以避免中断。
答案 0 :(得分:0)
知道了,问题是蓝牙扬声器。
我用另一个蓝牙耳机测试了它并且没有中断。