zoukankan      html  css  js  c++  java
  • 在Activity不可见时暂停WebView的语音播放,可见时继续播放之前的语音

    private AudioManager mAudioManager;
    private AudioManager.OnAudioFocusChangeListener mFocusChangeListener;

    @Override
    protected void onPause() {
      super.onPause();
      stopPlayVoice();
    }

    @Override
    protected void onResume() {
      super.onResume();
      startPlayVoice();
    }

    public void stopPlayVoice() {
      if (mAudioManager == null) {
        mAudioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
        mFocusChangeListener = new AudioManager.OnAudioFocusChangeListener() {
          @Override
          public void onAudioFocusChange(int focusChange) {
          }
        };
      }
      for (int i = 0; i < 10; i++) {  //尝试10次请求AudioFocus,一般一两次可以请求到,一旦请求到,语音将暂停播放
        if (mAudioManager.requestAudioFocus(mFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT) == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
          break;
        }
        SystemClock.sleep(100);
      }
    }

    private void startPlayVoice() {
      if (mAudioManager != null) {
        mAudioManager.abandonAudioFocus(mFocusChangeListener);//放弃并还回拿到的AudioFocus,语音将继续播放
      }
    }

  • 相关阅读:
    hrbust1841再就业(状态压缩dp)
    并查集 poj2236
    JavaScript 常用单词整理
    HTML/CSS 常用单词整理
    HTML/CSS 知识点
    JavaScript 知识点
    ArcGIS裁剪影像数据
    小小程序员
    ArcGIS平面阴影制作
    前端相关的seo技术
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/8399406.html
Copyright © 2011-2022 走看看