2010-06-15 3 views
1

TTS (텍스트 음성 변환) API를 사용하는 Android 애플리케이션이 있습니다. 모든 것이 완벽하게 작동하지만 이제는 응용 프로그램에서 텍스트를 말할 때 음악이 페이드 인/아웃되거나 심지어 음악이 중단되기를 원합니다 (사용자가 미리 작성된 뮤직 플레이어로 음악을 재생하는 경우). 지금은 음악과 TTS 메시지가 같은 스트림 (MUSIC)에서 재생되며 음성 메시지를 이해하기 어려울 수 있다고 생각합니다.텍스트를 말 할 때 음악을 페이드 인/아웃합니다.

오디오 관리자와 같은 다른 스트림에서 텍스트를 재생하려고했습니다 .STREAM_NOTIFICATIONS. 그것은 음악을 멈추지 만, 텍스트를 말할 때 다시 오지 않아 목표를 달성하지 못했습니다. 아직 아무 것도 찾지 못해서, 누군가가 여기에서 도울 수 있기를 바랍니다. 감사!

답변

5

마침내 뭔가 효과가 있습니다. 하지만 완벽하지는 않습니다. 아주 더러운 속임수 야. 경우에 따라 누군가에게 도움이 될 수 있습니다.

이것은 AudioManager의 requestAudioFocus 및 abandomAudioFocus 메소드를 사용하여 API 8에서 수정되었습니다.

이전 버전의 경우 시도해 볼 수 있습니다. 다른 스트림 채널을 통해 TTS를 재생합니다. STREAM_NOTIFICATIONS을 예로 들어 보겠습니다. 그런 다음 오디오 포커스를 STREAM_MUSIC으로 반환하면됩니다. 어떻게 그걸 얻을 수 있니?. TTS에 무음 문자열 ("")을 전송하지만 이번에는 STREAM_MUSIC을 통해 전송합니다. 효과는 다음과 같습니다 : 음악이 멈추고, TTS 메시지가 나옵니다. 그리고 마침내 당신의 음악은 음성 경고 뒤에 나타납니다. 좋지 않거나 자랑스러워할만한 것이 있지만 ... 누군가 다른 방식으로 알고 있다면 감사하겠습니다.

+0

API 21의 새로운 기능은 playSilentUtterance입니다. http://developer.android.com/reference/android/speech/tts/TextToSpeech.html#playSilentUtterance(long, int, java.lang.String) –

0

AudioManager.setStreamVolume과 함께 TextToSpeech.OnUtteranceCompletedListener을 사용할 수 있습니까?

+0

해당 작업을 생각하지 마십시오. , 배경 음악과 같은 STREAM_MUSIC을 통해 TTS 메시지를 재생할 경우 STREAM_NOTIFICATION과 같은 다른 스트림을 통해 재생하는 경우에도 여전히 포커스 리턴을 처리해야합니다. 그리고 나는 단지 그것을 고치기위한 한 가지 방법을 찾았습니다. 그것은 이전 게시판에 설명 된 더러운 해킹입니다. – ggomeze

+0

입니다. 이제는 이것이 당신이 옳은 "발언"후에 초점을 되 찾는 것에 대한 것입니다. requestAudioFocus 없이는 가능하지 않은 것처럼 보입니다. – aganders3

관련 문제