Android 按下耳机按钮时如何暂停MediaPlayer?
我正在实现媒体播放器并尝试暂停/启动播放器。但当我启动ear phone按钮时,广播接收器会重复调用。我使用以下代码。有人能帮我吗 编辑:Android 按下耳机按钮时如何暂停MediaPlayer?,android,media-player,headphones,Android,Media Player,Headphones,我正在实现媒体播放器并尝试暂停/启动播放器。但当我启动ear phone按钮时,广播接收器会重复调用。我使用以下代码。有人能帮我吗 编辑: public class MediaButtonIntentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String intentAction = intent.ge
public class MediaButtonIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
if(AudioPlayer.player!=null)
{
if(AudioPlayer.player.isPlaying())
AudioPlayer.player.pause();
else
AudioPlayer.player.start();
}
}
abortBroadcast();
}
}
我已经像这样初始化了接收器。我的代码有什么错误吗
MediaButtonIntentReceiver mMediaButtonReceiver = new MediaButtonIntentReceiver();
IntentFilter mediaFilter = new IntentFilter(
Intent.ACTION_MEDIA_BUTTON);
mediaFilter.setPriority(100000);
registerReceiver(mMediaButtonReceiver, mediaFilter);
我的广播接收器:
public class MediaButtonIntentReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String intentAction = intent.getAction();
if (!Intent.ACTION_MEDIA_BUTTON.equals(intentAction)) {
return;
}
KeyEvent event = (KeyEvent)intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
if (event == null) {
return;
}
int action = event.getAction();
if (action == KeyEvent.ACTION_DOWN) {
if(AudioPlayer.player!=null)
{
if(AudioPlayer.player.isPlaying())
AudioPlayer.player.pause();
else
AudioPlayer.player.start();
}
}
abortBroadcast();
}
}
您在舱单中注册广播接收器 然后,您可以使用以下方式注册广播接收器: 音频管理器#注册器
注册DiaButtoneVentReceiver的参数是指向广播接收器的组件名称。请说明您为什么放弃对此的投票。我必须改进我的问题以获得更好的答案。您所说的重复呼叫是什么意思?您的代码是否与链接到的示例中显示的代码完全相同?你记得过滤意图吗?