2015-02-23 1 views
1

Я новичок в android dev, и это мой первый раз в stackoverflow.
Im в настоящее время разрабатывает простую программу для моего предмета по программированию, и я внедрил Text-to-Speech для чтения шагов тренировки. У меня есть кнопка под названием «Play/Pause Audio»
Это мой OnClick слушатель:Как сделать паузу для Android для преобразования текста в речь?

speak.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(!tts.isSpeaking()) { 
       HashMap<String, String> params = new HashMap<String, String>(); 
       params.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID, "sampletext"); 
       tts.speak(tv.getText().toString(), TextToSpeech.QUEUE_ADD, params); 
      } else { 
       tts.stop(); 
      } 
     } 
    }); 

Но когда я пытаюсь сделать паузу, он останавливает и перезапускает процесс. Есть ли способ приостановить TTS?
Спасибо вам большое!

+0

Вы можете использовать [TextToSpeech.playSilence()] (https://github.com/gast-lib/gast-lib/blob/master/app/src/root/gast/playground/speech/tts/TextToSpeechDemo. java), также вы можете взглянуть на [это] (http://wptrafficanalyzer.in/blog/android-text-to-speech-implementing-pause-and-resume-in-tts-using-mediaplayer/) –

+0

Please смотрите здесь: http://stackoverflow.com/questions/4970204/how-to-pause-android-speech-tts-texttospeech –

ответ

0

Использование можно использовать метод playSilence() для паузы:

public void pause(long duration){ 
     tts.playSilence(duration, TextToSpeech.QUEUE_FLUSH, null); 
    } 

Где duration находится в миллисекундах.

Так вызова, например, pause(5000) сделает паузу в течение 5 секунд

0

Вы не можете!

После вызова говорить, TextToSpeech будет воспроизводить для вас сгенерированный звук.

Но вы можете сгенерировать звук в файле с помощью synthesizeToFile и воспроизвести его.