2011-09-26 12 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_MUSICを使用してみてくださいsetStreamVolume(...)方法。電話の音楽再生音量を調節すると、例の音声はメディアボリュームの影響を受けますので、STREAM_MUSICが必要です。

EDIT:このコードは...私のために完璧に動作

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であり、私も上記am.setStreamVolume(...)に私の呼び出しでamStreamMusicMaxVolを置き換えることで、これをテストしてみました3,6,9,12,15の値で、音声の音量が正しく設定される。

+0

方法がmmmmm5 @ AudioManager.Stream_MUSIC – mmmmm5

+2

に影響されない「話す」:「」話します"メソッドはAudioManager.Stream_MUSICの影響を受けません"はい、それは少なくとも私のHTC Desireです。何か間違っているか、デバイス/エミュレータでサポートされていないか、slaytonが示唆するように 'STREAM_SYSTEM'を使う必要があります。私が編集で追加したコードを見てください。完全に動作し、0-15の間のどこかで音声の音量を設定できます。 – Squonk

+0

ありがとうございます。できます。 2つの事柄は、私がそれがそうではないと思うのを妨げていました - (1)DMTFのトーンを話すことを比較する。 DMTFトーンははるかに大きいです。 (2)私は会話を途切れさせるような活動をしていたので、それはより柔らかく聞こえました。 – mmmmm5

3

コードでは、通知の量を変更しています。 TTSの音量は、通知と同じ音量で再生されますか?私はそれがない疑いがあると、それはおそらくSTREAM_SYSTEMまたはSTREAM_MUSICこれらのいずれかにストリームの種類を変更してみてくださいいずれかで再生:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

私はAudioManagerメソッド(setStreamVolume、getStreamMaxVolume)を使用して、「話す」方法をより大きくしようとしていました。しかし、 "話す"メソッドは、AudioManagerの影響を受けていません – mmmmm5

+0

上記の私の問題は、今解決された答えを参照してください解決済み – mmmmm5

関連する問題