Controllo del volume di Android TTS

C'è un modo per controllare il volume del motore TTS quando si invia una richiesta al motore TTS? Posso utilizzare AudioManager qui?

Grazie.

  • C'è un esempio di List / ListAdapter super semplice là fuori per Android
  • Apri i collegamenti di TextView ad un'altra attività, non il browser predefinito
  • Impedire l'istanza di un'attività nuova dopo aver cliccato sulla notifica
  • l'importzione .R non può essere risolta quando importzione di actionbarsherlock
  • SoftKeyboard che nasconde EditText
  • Come utilizzare la query di MediaStore per get gli artisti senza duplicati?
  • C'è un modo per non utilizzare risorse pubbliche android nella mia applicazione?
  • Riposizionare il timer in android
  • Come evitare l'inversione di un file APK?
  • FIrebase Java / Android creaUser non rioutput
  • Qual è la differenza tra Apache Cordova e PhoneGap?
  • Sostituire deprecated android.support.v4.app.ActionBarDrawerToggle con la versione di support.v7 che causa il cassetto non funziona su Jelly Bean
  • 5 Solutions collect form web for “Controllo del volume di Android TTS”

    Sì, come richiede la tua domanda, è ansible utilizzare AudioManager per audio TTS.

    Se si desidera impostare il volume nel codice, si desidera utilizzare i getStreamVolume() e setStreamVolume() .

    Se si desidera dare il controllo dell'utente al volume (questo dipende da come / quando il programma imposta il volume), questa domanda indica che devi call setVolumeControlStream() durante OnCreate() .

    EDIT: E no, non puoi controllare il volume nei methods del motore TTS (cioè il metodo Speak() ).

    è ansible get questo in methods TTS speak (), ma solo a partire dal livello API 11.

    Per mantenere la compatibilità all'indietro, è ansible definire il livello superiore di api (con min. Sdk min) e utilizzare un decoratore "@TargetApi (api_level)" insieme al controllo della versione sdk.

     /** speak the single word, at a lower volume if possible */ protected void speakOneWord(String text) { int apiVer = android.os.Build.VERSION.SDK_INT; if (apiVer >= 11){ speakApi13(text); } else { // compatibility mode HashMap<String, String> params = new HashMap<String, String>(); mTts.speak(text, TextToSpeech.QUEUE_ADD, params); } } /** speak at a lower volume, for platform >= 13 */ @TargetApi(13) protected void speakApi13(String text) { HashMap<String, String> params = new HashMap<String, String>(); params.put(TextToSpeech.Engine.KEY_PARAM_VOLUME, "0.1"); mTts.speak(text, TextToSpeech.QUEUE_ADD, params); } 

    int iAlertVolume è un 0% al 100%, l'utente imposta questo volume desiderato.

     setVolumeControlStream(AudioManager.STREAM_MUSIC); AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); int amStreamMusicMaxVol = am.getStreamMaxVolume(am.STREAM_MUSIC); am.getStreamVolume(am.STREAM_MUSIC); 

    Impostazione volume effettiva:

    am.setStreamVolume(am.STREAM_MUSIC, (iAlertVolume*amStreamMusicMaxVol)/100,0 );

    Il 0 alla fine dice che non visualizza il controllo del volume di sistema, impostato su 1 per vedere il sistema ctrl

    speak() metodo speak() può ora controllare il volume TTS

    aggiunto nel livello API 21

     int speak (CharSequence text, int queueMode, Bundle: KEY_PARAM_VOLUME;..., String utteranceId) 

    Parametro KEY_PARAM_VOLUME , tasto per specificare il volume vocale relativo al volume corrente del tipo di stream utilizzato quando si parla di text.
    Il volume è specificato come float che va da 0 a 1 where 0 è il silenzio e 1 è il volume massimo (il comportmento predefinito).

    Provare a controllare le impostazioni:

     AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); sb2value =am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); am.setStreamVolume(AudioManager.STREAM_MUSIC, sb2value, 0); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.