2014-01-15 2 views
0

У нас есть приложение для Android, которое будет периодически выполнять операции TTS в фоновом режиме в файл (вызов synhesizeToFile) и операцию, выполняющую операции TTS для немедленного вывода (вызов). Мой план состоял в том, чтобы создать два отдельных экземпляра TextToSpeech. Каждый экземпляр вызывает setOnUtteranceCompletedListener, чтобы прослушать полное произнесение.Несколько экземпляров TextToSpeech в Android

Я предположил, что каждый экземпляр будет работать независимо, чтобы ни один экземпляр не прерывал другой. Однако, похоже, что setOnUtteranceCompletedListener не ведет себя так, как ожидалось. Только один из экземпляров когда-либо будет получать обратные вызовы, в зависимости от того, какой сервис запускается.

Недействительно ли иметь два экземпляра TextToSpeech в одном процессе? Вы получаете только один движок TTS для каждого процесса, и поэтому все действия TTS в процессе должны совместно использовать движок.

+0

Почему вы не связываетесь с сервисом и не отправляете ли сообщения сообщения в службу для разговоров? –

ответ

-1

Действителен для создания нескольких экземпляров TTS в одном процессе. (Я сделал это успешно) Каждый экземпляр не зависит от другого экземпляра.

Важно следить за экземплярами, поскольку вам необходимо остановить/выключить tts после использования из каждого экземпляра.

Смежные вопросы