0

I am implementing media player and trying to pause/start the player.But the broadcast reciever is called repeatedly,when i start the ear-phone button press.I am using the below code . Can anybody help me.

EDIT:

I have initializing the receiver like this.any thing wrong in my code

MediaButtonIntentReceiver    mMediaButtonReceiver = new MediaButtonIntentReceiver();
                IntentFilter mediaFilter = new IntentFilter(
                        Intent.ACTION_MEDIA_BUTTON);
                mediaFilter.setPriority(100000);


                registerReceiver(mMediaButtonReceiver, mediaFilter);

My broadcast receiver:

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();
    }
}
Ramesh Akula
  • 5,720
  • 4
  • 43
  • 67
  • 2
    Please mention why you are giving down vote for this.I have to improve my question for better answer. – Ramesh Akula Jan 05 '12 at 11:19
  • What do you mean by it is getting called repeatedly? Is you code exactly like the one shown in the sample you link to? Did you remember to filter the Intents? – Cheesebaron Jan 05 '12 at 11:25

1 Answers1

0

You register your broadcast receiver in the manifest

You then register your broadcast receiver using:

AudioManager#registerMediaButtonEventReceiver

The argument to registerMediaButtonEventReceiver is a ComponentName that points your broadcast receiver.

pjulien
  • 1,369
  • 10
  • 14