I'm at a lost. I want to be able to adjust the speak volume. Whatever I do, I can't increase its volume. How do I make it as loud as that found in the Android settings (as below)?
System Settings -> Voice input and output -> Text-to-Speech settings -> Listen to an example
My code at this moment is:
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);
Try using
AudioManager.STREAM_MUSIC
when calling thesetStreamVolume(...)
method. The example speech is affected by the media volume if I adjust the volume of music playback on my phone so I guessSTREAM_MUSIC
is what you need.EDIT: This code works perfectly for me...
The max volume for
STREAM_MUSIC
on my phone is 15 and I've even tested this by replacingamStreamMusicMaxVol
in my call toam.setStreamVolume(...)
above with the values 3, 6, 9, 12, 15 and the volume of the speech is correctly set.In your code you are changing the volume of notifications. Is the volume of TTS played at the same volume level as notifications? I suspect it isn't and it probably played at either
STREAM_SYSTEM
orSTREAM_MUSIC
Try changing the stream type to one of these: