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

  • 相关阅读:
    OS程序开发引用的第三方库之间出现冲突的处理方法
    ios的指令集(转)
    查看lib库支持的IOS指令集
    Audio Session Programming Guide
    Swift中文教程
    NSString 与 char * 互转
    id 与void *类型的转换(转)
    versions使用(转)
    superview透明问题
    Python 头部 #!/usr/bin/python 和 #!/usr/bin/env 的区别
  • 原文地址:https://www.cnblogs.com/qianyukun/p/6735090.html
Copyright © 2011-2022 走看看