텍스트 음성 변환 시스템에서 구를 말하는 동안 오디오 플레이어를 음소거하려고합니다. audiomanager는 오디오 포커스가 요청되었을 때 볼륨을 줄이지 만 abandonAudioFocus가 호출되면 볼륨이 복원되지 않고 abandonAudioFocus의 콜백이 호출되지 않습니다.Audiomanager.abandonAudioFocus가 재생을 다시 시작하지 않습니다.
private class SpeakRunnable implements Runnable {
String mText;
public SpeakRunnable(String text) {
mText = text;
}
@Override
public void run() {
stream_volume = am.getStreamVolume(AudioManager.STREAM_MUSIC);
am.requestAudioFocus(new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
//Check if focus granted
.....
HashMap<String, String> params = new HashMap<String, String>();
params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "none");
talker.speak(mText, TextToSpeech.QUEUE_ADD, params);
}
},
AudioManager.STREAM_MUSIC,
AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
}
}
과 :
talker.setOnUtteranceProgressListener(new UtteranceProgressListener() {
@Override
public void onStart(String utteranceId) {
}
@Override
public void onError(String utteranceId) {
}
@Override
public void onDone(String utteranceId) {
am.abandonAudioFocus(new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
Log.v(app_id, "CALLBACK");
}
});
}
});
어떤 생각 이 내 코드? 미리 감사드립니다.
당신 말이 맞습니다. 그건 내 잘못이야. 감사합니다. – dantard