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,語音將繼續播放
}
}