如何在按下耳机按钮时暂停MediaPlayer?

时间:2012-01-05 11:17:24

标签: android media-player headphones

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

修改

我已经像这样初始化了接收器。我的代码中出了什么问题

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

1 个答案:

答案 0 :(得分:0)

您在清单

中注册广播接收器

然后使用以下方式注册广播接收器:

AudioManager#registerMediaButtonEventReceiver

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