0

我正在实现媒体播放器并尝试暂停/启动播放器。但是当我开始按下耳机按钮时,广播接收器被反复调用。我正在使用下面的代码。有谁能够帮我。

编辑:

我已经像这样初始化接收器。我的代码中有任何问题

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();
    }
}
4

1 回答 1

0

您在清单中注册广播接收器

然后,您使用以下方法注册广播接收器:

AudioManager#registerMediaButtonEventReceiver

registerMediaButtonEventReceiver 的参数是指向您的广播接收器的 ComponentName。

于 2012-01-20T14:47:58.710 回答