【问题标题】:How to pause MediaPlayer when ear phone buttons pressed?按下耳机按钮时如何暂停 MediaPlayer?
【发布时间】:2012-02-03 05:19:19
【问题描述】:

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

编辑:

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

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

【问题讨论】:

  • 请说明您对此投反对票的原因。我必须改进我的问题以获得更好的答案。
  • 反复调用它是什么意思?您的代码与您链接到的示例中显示的代码完全相同吗?你记得过滤 Intent 吗?

标签: android media-player headphones


【解决方案1】:

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

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

AudioManager#registerMediaButtonEventReceiver

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多