2011-09-26 58 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_MUSICsetStreamVolume(...)方法。如果我調整手機上音樂播放的音量,示例語音會受到媒體音量的影響,所以我猜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,我甚至在我的電話更換amStreamMusicMaxVol以上am.setStreamVolume(...)測試這與值3,6,9,12,15和語音的音量正確設置。

+0

「說話」的方法不受AudioManager.Stream_MUSIC – mmmmm5

+2

@ mmmmm5:「」說話「方法不受AudioManager.Stream_MUSIC的影響」是的,至少在我的HTC Desire上。您必須做錯了某些事情,或者您的設備/仿真器不支持它,或者您需要像slayton所暗示的那樣使用STREAM_SYSTEM。查看我在編輯中添加的代碼 - 它可以很好地工作,我可以在0-15之間的任何位置設置語音音量。 – Squonk

+0

謝謝。有用。有兩件事阻止了我認爲它不是 - (1)比較DMTF口氣說話。 DMTF音調更響亮。 (2)我正在進行一些其他的活動,它會阻止說話完成,所以它聽起來更柔和 – mmmmm5

3

在您的代碼中,您正在更改通知量。 TTS的音量是否與通知音量相同?我懷疑這是不是和它可能在任STREAM_SYSTEMSTREAM_MUSIC發揮試着改變流類型的其中之一:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

我正在嘗試使用AudioManager方法(setStreamVolume,getStreamMaxVolume)來使「speak」方法變得更響。但是,「說話」方法不受AudioManager – mmmmm5

+0

影響,請參閱上面的問題,我現在解決了這個問題 – mmmmm5

相關問題