6

我迷路了。我希望能够调整说话音量。无论我做什么,我都无法增加它的音量。如何让它像 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);
4

2 回答 2

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_MUSIC15,我什至通过amStreamMusicMaxVol在上面的调用中替换am.setStreamVolume(...)为值 3、6、9、12、15 来测试这一点,并且语音的音量设置正确。

于 2011-09-26T17:37:39.680 回答
3

在您的代码中,您正在更改通知的数量。TTS 的播放音量是否与通知的音量相同?我怀疑它不是,它可能在其中一个播放STREAM_SYSTEMSTREAM_MUSIC尝试将流类型更改为以下之一:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM
于 2011-09-26T17:40:08.460 回答