Android TTS volume control
Gibt es eine Möglichkeit, die Lautstärke der TTS-Motor beim senden der Anfrage an TTS engine? Kann ich in der Lage zu verwenden AudioManager hier?
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine Möglichkeit, die Lautstärke der TTS-Motor beim senden der Anfrage an TTS engine? Kann ich in der Lage zu verwenden AudioManager hier?
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Ihre Frage bittet, Sie in der Lage sind zu verwenden AudioManager für TTS-audio.
Wenn Sie möchten, um die Lautstärke einzustellen im code, werden Sie wollen, verwenden Sie die
getStreamVolume()
undsetStreamVolume()
Methoden.Wenn Sie wollen, geben Sie dem Benutzer die Kontrolle über die Lautstärke (das kann hängt davon ab, wie/wenn Ihr Programm setzt die Lautstärke), diese Frage Punkte aus, die Sie anrufen
setVolumeControlStream()
währendOnCreate()
.EDIT: Und Nein, Sie können nicht die Lautstärke innerhalb der TTS-Motor ist Methoden (d.h. die
Speak()
- Methode).können Sie diese in TTS speak () - Methoden, aber erst ab API-level 11.
Halten, rückwärts-Kompatibilität, könnten Sie Ziel die höhere api-level (mit niedrigeren min-sdk) und mit einem "@TargetApi(api_level)" Dekorateur zusammen mit der sdk-version überprüfen.
speak()
Methode können nun die TTS-LautstärkeHinzugefügt in der API-level 21
Parameter
KEY_PARAM_VOLUME
, Schlüssel angeben, um die Gesprächslautstärke, die relativ zu den aktuellen stream Typ Volumen spricht, wenn man text ein.Volume angegeben wird als float im Intervall von 0 bis 1, wobei 0 die Stille, und 1 ist die maximale Lautstärke (das Standardverhalten).
Versuchen, diese zu kontrollieren der Einstellungen:
int iAlertVolume ist ein 0% - 100% der Benutzer legt diese auf die gewünschte Lautstärke.
Aktuelle Lautstärke-Einstellung:
am.setStreamVolume(am.STREAM_MUSIC, (iAlertVolume*amStreamMusicMaxVol)/100,0 );
Die 0 am Ende sagt nicht anzeigen, die system-Lautstärke-Kontrolle, auf 1 gesetzt, um zu sehen, system, Strg