我迷路了。我希望能够调整说话音量。无论我做什么,我都无法增加音量。如何使其像在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);
答案 0 :(得分:17)
在调用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,我甚至通过将上面amStreamMusicMaxVol
的{{1}}替换为am.setStreamVolume(...)
并使用值3,6,9来测试了这一点, 12,15和语音的音量设置正确。
答案 1 :(得分:3)
在您的代码中,您正在更改通知量。 TTS的音量是否与通知音量相同?我怀疑它不是,它可能在STREAM_SYSTEM
或STREAM_MUSIC
播放尝试将流类型更改为以下其中一种:
STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM