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,语音将继续播放
      }
    }

  • 相关阅读:
    SDN实验2:Mininet 实验——拓扑的命令脚本生成
    2020软工实践第一次作业
    POJ2942-Knights of the Round Table
    POJ1966 ZOJ2182<无向图点连通度 Isap版>
    POJ1523(求割点)
    POJ2391(最大流Isap+Floyd+二分)
    POJ1087 ZOJ1157(最大流Isap+map映射)
    POJ1459(最大流Isap)
    数字的字符串处理 (转)
    POJ2112 最大流(Isap+Floyd+二分)
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/8399406.html
Copyright © 2011-2022 走看看