• 耳机 插拔


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

  • 相关阅读:
    WordPress在nginx服务器伪静态
    excel根据一列的值匹配另一列
    linux上安装Anaconda并创建python虚拟环境
    python模块学习之numpy
    大数据测试工具
    python学习路线
    spark event log
    夏令时
    spark学习指南
    Yarn和Spark对比
  • 原文地址:https://www.cnblogs.com/qianyukun/p/6735090.html
Copyright © 2020-2023  润新知