package com.music.you.tube.receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.music.you.tube.player.PlayService; import com.music.you.tube.util.Actions; import com.music.you.tube.util.LogUtil; /** * 来电/耳机拔出时暂停播放 */ public class NoisyAudioStreamReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.hasExtra("state")){ if (intent.getIntExtra("state", 0) == 0){ Intent serviceIntent = new Intent(context, PlayService.class); serviceIntent.setAction(Actions.ACTION_MEDIA_HEADSET); context.startService(serviceIntent); LogUtil.e( "headset not connected"); } else if (intent.getIntExtra("state", 0) == 1){ LogUtil.e( "headset connected"); } } } }
private IntentFilter mNoisyFilter = new IntentFilter(Intent.ACTION_HEADSET_PLUG); private NoisyAudioStreamReceiver mNoisyReceiver = new NoisyAudioStreamReceiver(); registerReceiver(mNoisyReceiver, mNoisyFilter);
switch (intent.getAction()) { case Actions.ACTION_MEDIA_HEADSET: if (getCurrentState() == YoutubePlayerView.STATE.PLAYING) { pause(); } break; case Actions.ACTION_MEDIA_PLAY_PAUSE: if (getCurrentState() == YoutubePlayerView.STATE.PLAYING) { pause(); } else if (getCurrentState() == YoutubePlayerView.STATE.PAUSED) { play(); } else if (getCurrentState() == YoutubePlayerView.STATE.BUFFERING) { stop(); } else if (getCurrentState() == YoutubePlayerView.STATE.CUED) { stop(); } else if (getCurrentState() == YoutubePlayerView.STATE.ENDED) { pause(); } else if (getCurrentState() == YoutubePlayerView.STATE.NONE) { stop(); } else if (getCurrentState() == YoutubePlayerView.STATE.UNSTARTED) { stop(); } break; case Actions.ACTION_MEDIA_NEXT: next(); break; case Actions.ACTION_MEDIA_PREVIOUS: prev(); break; }
unregisterReceiver(mNoisyReceiver);
//耳机插拔发送的广播的action 可以自己取名字。