2012-01-05 92 views
0

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

编辑:

我已经初始化接收器像this.any事错在我的代码

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

请说明为什么你放弃投票this.I必须改善我的问题,以获得更好的答案。 – 2012-01-05 11:19:48

+0

你是什么意思,它被反复调用?您的代码是否与您链接的示例中显示的代码完全相同?你记得要过滤意图吗? – Cheesebaron 2012-01-05 11:25:25

回答

0

您注册广播收货清单中的收货人

然后,使用注册您的广播接收器:

AudioManager#registerMediaButtonEventReceiver

到registerMediaButtonEventReceiver的参数是指向你的广播接收机组件名称。