2011-09-26 2 views
5

나는 길을 잃었다. 나는 말의 볼륨을 조절할 수 있기를 원합니다. 내가하는 일을해도 볼륨을 늘릴 수는 없습니다. Android 설정에서 찾은 것만 큼 크게 만들려면 어떻게해야합니까 (아래 참조)?텍스트 음성 변환 "말하기"방법에 볼륨을 설정하는 방법은 무엇입니까?

시스템 설정 -> 음성 입력 및 출력 -> 텍스트 음성 변환 설정 -> 예를 들어

이 순간에 내 코드는 다음을 호출 할 때

AudioManager mAudioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
mAudioManager.setSpeakerphoneOn(true); 
int loudmax = mAudioManager.getStreamMaxVolume(AudioManager.STREAM_NOTIFICATION); 
mAudioManager.setStreamVolume(AudioManager.STREAM_NOTIFICATION,loudmax, AudioManager.FLAG_PLAY_SOUND); 
mTts.speak(name,TextToSpeech.QUEUE_FLUSH, null); 

답변

15

AudioManager.STREAM_MUSIC를 사용해보십시오 setStreamVolume(...) 방법. 휴대 전화에서 음악 재생 음량을 조정하면 예제 음성이 미디어 볼륨의 영향을받습니다. 따라서 STREAM_MUSIC이 필요합니다.

편집 :이 코드는 ... 나를 위해 완벽하게 작동

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
int amStreamMusicMaxVol = am.getStreamMaxVolume(am.STREAM_MUSIC); 
am.setStreamVolume(am.STREAM_MUSIC, amStreamMusicMaxVol, 0); 
tts.speak("Hello", TextToSpeech.QUEUE_FLUSH, null); 

내 전화 STREAM_MUSIC의 최대 볼륨이 15이고 심지어 위의 am.setStreamVolume(...)에 내 전화에 amStreamMusicMaxVol를 교체하여이를 테스트 한 3, 6, 9, 12, 15의 값을 가지며 음성의 음량이 올바르게 설정됩니다.

+0

"말"방법은 mmmmm5 @ AudioManager.Stream_MUSIC – mmmmm5

+2

에 의해 영향을받지 않는다 : ""말해 이들 중 하나에 스트림 유형을 변경하십시오 나는 그렇지 의심 그것은 아마도 STREAM_SYSTEM 또는 STREAM_MUSIC 중 하나에서 연주 "메서드는 AudioManager.Stream_MUSIC의 영향을받지 않습니다."그렇습니다. 적어도 HTC Desire에서. 당신은 틀린 일을해야만합니다. 아니면 장치/에뮬레이터에서 지원되지 않거나 slayton이 제안하는대로'STREAM_SYSTEM'을 사용해야합니다. 편집에서 추가 한 코드를 참조하십시오. 완벽하게 작동하며 0-15 사이의 어디서나 음성 볼륨을 설정할 수 있습니다. – Squonk

+0

감사. 그것은 작동합니다. 2 가지로 인해 나를 생각하지 못하게되었습니다. - (1) DMTF 톤을 말하기와 비교하십시오. DMTF 톤이 훨씬 큽니다. (2) 말하기를 끝내는 다른 활동을하고 있었기 때문에 소리가 부드럽게 들렸습니다. – mmmmm5

3

코드에서 알림의 볼륨을 변경하고 있습니다. TTS의 볼륨이 알림과 동일한 볼륨 레벨에서 재생됩니까?

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

"말하는"방법을 크게하기 위해 AudioManager 메서드 (setStreamVolume, getStreamMaxVolume)를 사용하려고했습니다. 그러나, "말하는"방법은 AudioManager – mmmmm5

+0

에 의해 영향을받지 않습니다 내 문제에 대한 위의 대답은 지금 해결 된 참조 – mmmmm5

관련 문제