2011-09-26 6 views
5

Sono perso. Voglio essere in grado di regolare il volume di parlare. Qualunque cosa io faccia, non posso aumentare il suo volume. Come faccio a renderlo forte come quello trovato nelle impostazioni di Android (come sotto)?Come impostare il volume per il metodo "parla" da testo a voce?

Impostazioni di sistema -> Impostazioni vocali -> impostazioni Text-to-Speech -> Ascolta un esempio

Il mio codice in questo momento è:

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); 

risposta

15

provare a utilizzare AudioManager.STREAM_MUSIC quando si chiama il Metodo setStreamVolume(...). Il parlato di esempio è influenzato dal volume multimediale se aggiusto il volume della riproduzione musicale sul mio telefono, quindi suppongo che STREAM_MUSIC sia ciò di cui hai bisogno.

EDIT: Questo codice funziona perfettamente per me ...

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); 

Il volume massimo per STREAM_MUSIC sul mio telefono è 15 e ho anche testato questo sostituendo amStreamMusicMaxVol nella mia chiamata a am.setStreamVolume(...) sopra con i valori 3, 6, 9, 12, 15 e il volume del discorso è impostato correttamente.

+0

"Speak" metodo non è influenzata da AudioManager.Stream_MUSIC – mmmmm5

+2

@ mmmmm5: "" Parla "Il metodo non è influenzato da AudioManager.Stream_MUSIC" Sì lo è - almeno sul mio HTC Desire. Devi fare qualcosa di sbagliato o semplicemente non è supportato sul tuo dispositivo/emulatore o devi usare 'STREAM_SYSTEM' come suggerisce Slayton. Vedere il codice che ho aggiunto nella mia modifica: funziona perfettamente e posso impostare il volume della voce ovunque tra 0-15. – Squonk

+0

Grazie. Funziona. 2 cose mi stavano impedendo di pensare che non fosse - (1) confrontando il tono DMTF per parlare. Il tono DMTF è molto più forte. (2) stavo eseguendo qualche altra attività che interrompeva il parlare dal completamento, quindi suonava più morbido – mmmmm5

3

Nel codice si modifica il volume delle notifiche. Il volume di TTS è riprodotto allo stesso livello del volume delle notifiche? Ho il sospetto che non è e probabilmente giocato sia a STREAM_SYSTEM o STREAM_MUSIC Provare a cambiare il tipo di flusso a uno di questi:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

Stavo cercando di utilizzare i metodi di AudioManager (setStreamVolume, getStreamMaxVolume) per rendere più efficace il metodo "speak". Ma il metodo "speak" non è influenzato da AudioManager – mmmmm5

+0

vedi sopra la risposta al mio problema che ora è risolto – mmmmm5

Problemi correlati