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

  • 相关阅读:
    fedora20安装hadoop-2.5.1
    超简单fedora20(linux)下JDK1.8的安装
    解决A program file was not specified in the launch configuration.问题
    java中的四则运算
    spring util命名空间
    java中常用的数据加密算法
    C语言实现栈
    百度ueditor富文本编辑器的使用
    C#进程管理程序实现
    ABP领域层-仓储
  • 原文地址:https://www.cnblogs.com/qianyukun/p/6735090.html
Copyright © 2011-2022 走看看