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 に答える