耳机 插拔

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 可以自己取名字。

原文地址:https://www.cnblogs.com/qianyukun/p/6735090.html