Контролировать громкость при вызове функции TextToSpeech - PullRequest
0 голосов
/ 30 сентября 2018

Привет, ребята

Я искал вокруг, но, похоже, не могу найти подходящий ответ для интеграции в мою функцию.В настоящее время я в основном использую следующий код:

    private void sayHello(String timeString) {

    textToSpeech.speak(timeString,
    TextToSpeech.QUEUE_FLUSH,
    null);
}

Этот код работает нормально, но он слишком громкий , и он может управляться только громкостью самого устройства .Я хочу иметь возможность настраивать / жестко кодировать / иметь возможность использовать вращатель для управления громкостью TTS, но, похоже, не могу сделать это соответствующим образом.

Доступна ли эта функция для этой библиотеки?Это достижимо?
Я также пытался внедрить в свой код следующее:

KEY_PARAM_VOLUME

Однако я не вижу никаких примеров использования этого, и оно появляется с ошибкой для создания функции.Любой совет?

1 Ответ

0 голосов
/ 30 сентября 2018
public class MainActivity extends AppCompatActivity {

    int androidAPILevel = android.os.Build.VERSION.SDK_INT;
    TextToSpeech tts;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tts = new TextToSpeech(this, new TextToSpeech.OnInitListener() {
            @Override
            public void onInit(int i) {
                start();
            }
        });
    }

    private void start() {
        if (androidAPILevel < 21) {
            HashMap<String,String> params = new HashMap<>();
            params.put(TextToSpeech.Engine.KEY_PARAM_VOLUME, "0.5"); // change the 0.5 to any value from 0-1 (1 is default)
            tts.speak("This is a volume test.", TextToSpeech.QUEUE_FLUSH, params);
        } else { // android API level is 21 or higher...
            Bundle params = new Bundle();
            params.putFloat(TextToSpeech.Engine.KEY_PARAM_VOLUME, 0.5f); // change the 0.5f to any value from 0f-1f (1f is default)
            tts.speak("This is a volume test.", TextToSpeech.QUEUE_FLUSH, params, null);
        }
    }
}
...