zoukankan      html  css  js  c++  java
  • 耳机 插拔

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

  • 相关阅读:
    HDU 1018 Big Number
    UVa 10603 倒水问题
    UVa 12108 特别困的学生
    UVa 1590 IP网络(简单位运算)
    UVa 12325 宝箱
    UVa 253 骰子涂色
    UVa 815 洪水!
    springmvc(2)处理器设配器和映射器
    SpringMVC(1)
    MyBatis(10)逆向工程
  • 原文地址:https://www.cnblogs.com/qianyukun/p/6735090.html
Copyright © 2011-2022 走看看