2011-09-26 10 views
5

Estoy perdido. Quiero poder ajustar el volumen de hablar. Cualquier cosa que haga, no puedo aumentar su volumen. ¿Cómo lo hago tan fuerte como el que se encuentra en la configuración de Android (como a continuación)?¿Cómo configurar el volumen para el método de "hablar" de texto a voz?

Configuración del sistema -> Entrada y salida de voz -> Configuración de texto a voz -> Escuchar un ejemplo

Mi código en este momento es:

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

Respuesta

15

trate de usar AudioManager.STREAM_MUSIC al llamar al setStreamVolume(...) método. El volumen de medios afecta el habla de ejemplo si ajusto el volumen de reproducción de música en mi teléfono, así que supongo que STREAM_MUSIC es lo que necesita.

EDIT: Este código funciona perfectamente para mí ...

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

El volumen máximo para STREAM_MUSIC en mi teléfono es 15 e incluso he probado esto substituyendo amStreamMusicMaxVol en mi llamada a la anterior am.setStreamVolume(...) con los valores 3, 6, 9, 12, 15 y el volumen de la voz está configurado correctamente.

+0

"Habla" método no se ve afectada por AudioManager.Stream_MUSIC – mmmmm5

+2

@ mmmmm5: "" Habla "el método no se ve afectado por AudioManager.Stream_MUSIC" Sí lo es, al menos en mi HTC Desire. Debe estar haciendo algo mal o simplemente no es compatible con su dispositivo/emulador o necesita usar 'STREAM_SYSTEM' como sugiere slayton. Vea el código que agregué en mi edición, funciona perfectamente y puedo configurar el volumen de voz en cualquier lugar entre 0-15. – Squonk

+0

Gracias. Funciona. Dos cosas me impedían pensar que no era: (1) comparar el tono DMTF para hablar. El tono DMTF es mucho más fuerte. (2) estaba ejecutando alguna otra actividad que cortó el habla de completar, por lo que sonaba más suave – mmmmm5

3

En su código está cambiando el volumen de las notificaciones. ¿El volumen de TTS se reproduce en el mismo nivel de volumen que las notificaciones? Sospecho que no es y es probable que sea jugado en STREAM_SYSTEM o STREAM_MUSIC Intente cambiar el tipo de flujo a una de estas:

STREAM_VOICE_CALL, STREAM_SYSTEM, STREAM_RING, STREAM_MUSIC or STREAM_ALARM 
+0

Estaba intentando usar los métodos de AudioManager (setStreamVolume, getStreamMaxVolume) para hacer que el método "speak" sea más fuerte. Pero, el método de "hablar" no se ve afectado por AudioManager – mmmmm5

+0

ver la respuesta anterior sobre mi problema que ahora está resuelto – mmmmm5

Cuestiones relacionadas