2011-09-26 15 views
5

Jestem zagubiony. Chcę móc dostosować głośność mowy. Cokolwiek robię, nie mogę zwiększyć jego objętości. Jak zrobić to tak głośno, jak to znaleźć w ustawieniach Androida (jak poniżej)?Jak ustawić głośność dla metody "wypowiadania" tekstu na mowę?

Ustawienia systemowe -> Wejście głosowe i wyjście -> Text-to-Speech Ustawienia -> Posłuchaj przykładu

Mój kod w tej chwili jest:

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); 

Odpowiedz

15

spróbuj AudioManager.STREAM_MUSIC podczas wywoływania Metoda setStreamVolume(...). Przykładowa mowa ma wpływ na głośność multimediów, jeśli dostosowuję głośność odtwarzania muzyki w moim telefonie, więc domyślam się, że potrzebna jest STREAM_MUSIC.

EDIT: Ten kod działa idealnie dla mnie ...

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); 

Maksymalna objętość dla STREAM_MUSIC w moim telefonie jest 15 a ja nawet przetestowane przez zastąpienie amStreamMusicMaxVol na moje wezwanie do am.setStreamVolume(...) powyżej z wartościami 3, 6, 9, 12, 15 i głośnością mowy jest ustawiona prawidłowo.

+0

„Mów” metoda nie wpływa AudioManager.Stream_MUSIC – mmmmm5

+2

@ mmmmm5: „” Mów "nie ma wpływu na metodę AudioManager.Stream_MUSIC" Tak, jest - przynajmniej w moim HTC Desire. Musisz zrobić coś złego lub po prostu nie jest to obsługiwane na twoim urządzeniu/emulatorze lub musisz użyć 'STREAM_SYSTEM', jak sugeruje slayton. Zobacz kod dodany w mojej edycji - działa idealnie i mogę ustawić głośność mowy w dowolnym miejscu pomiędzy 0-15. – Squonk

+0

Dzięki. To działa. 2 rzeczy nie pozwalały mi myśleć, że tak nie jest - (1) porównując ton DMTF do mówienia. Ton DMTF jest znacznie głośniejszy. (2) wykonywałem jakąś inną czynność, która odcięła mówienie od ukończenia, więc brzmiało to łagodniej. – mmmmm5

3

W kodzie zmieniasz głośność powiadomień. Czy głośność TTS jest odtwarzana na tym samym poziomie głośności, co powiadomienia? Podejrzewam, że nie jest i prawdopodobnie grał w obu STREAM_SYSTEM lub STREAM_MUSIC Spróbuj zmienić typ strumienia do jednego z nich:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

Próbowałem użyć metod AudioManager (setStreamVolume, getStreamMaxVolume), aby głośniej mówić "mówić". Ale metoda "speak" nie ma wpływu na AudioManager – mmmmm5

+0

zobacz wyżej odpowiedź na mój problem, który jest teraz rozwiązany – mmmmm5

Powiązane problemy