public class AudioFocusChangeUtil {

    private static AudioFocusChangeUtil instance;

    private AudioManager audioManager;

    public static AudioFocusChangeUtil getInstance(){
        if (instance == null){
            instance = new AudioFocusChangeUtil();
        }
        return instance;
    }

    private AudioFocusChangeUtil(){
        audioManager = (AudioManager) CustomApplication.getInstance().getSystemService(AUDIO_SERVICE);
    }

    public boolean requestFocus() {
        // Request audio focus for playback
        int result = audioManager.requestAudioFocus(afChangeListener,
                // Use the music stream.
                AudioManager.STREAM_MUSIC,
                // Request permanent focus.
                AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
        return result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
    }

    public boolean abandonAudioFocus() {
        int result = audioManager.abandonAudioFocus(afChangeListener);
        return result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
    }

    private AudioManager.OnAudioFocusChangeListener afChangeListener = new AudioManager.OnAudioFocusChangeListener() {
        public void onAudioFocusChange(int focusChange) {
            if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) {
                // Pause playback

            } else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
                // Resume playback

            } else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
                // mAm.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
                audioManager.abandonAudioFocus(afChangeListener);
                // Stop playback

            }
        }
    };
}

更多相关文章

  1. 代码中设置drawableleft
  2. android 3.0 隐藏 系统标题栏
  3. Android开发中activity切换动画的实现
  4. Android(安卓)学习 笔记_05. 文件下载
  5. Android中直播视频技术探究之—摄像头Camera视频源数据采集解析
  6. 技术博客汇总
  7. android 2.3 wifi (一)
  8. AndRoid Notification的清空和修改
  9. Android中的Chronometer

随机推荐

  1. android 五种存储
  2. Android中联系人和通话记录详解(2)
  3. Android设备开发中的一些解决办法
  4. Android测试框架或者工具对比
  5. Android(安卓)之 使用SoundPool播放音频
  6. Android基础 --- Widget
  7. Android蓝牙开发介绍
  8. android开发之使用上下文菜单
  9. Android国际化资源 文件夹命名规范
  10. Android Introduce(I)concepts and NoteB