0

Мне было интересно, что я работаю над Android-приложением, в котором MediaPlayer/TextToSpeech используется, чтобы сообщить пользователю что-то, а затем объект распознавания речи открывается после завершения MediaPlayer/TextToSpeech, а другой воспроизводится после ответа на вопрос с распознаванием , Проблема в том, что я не на 100% уверен в том или ином способе, чтобы отложить распознавание речи от открытия сразу после запуска MediaPlayer или до тех пор, пока не появится медиаплеер до открытия распознавания речи. Я вижу несколько вариантов, основанных на моих собственных знаниях/Google -Выполнение кода после воспроизведения MediaPlayer?

Используйте методы isPlaying (MediaPlayer)/isSpeaking (TextToSpeech) и помещайте их в какой-то цикл, чтобы проверить, пока они больше не верны, затем откройте распознавание речи.

Позвоните в Thread.sleep(). Проблема, которую я вижу в этом, заключается в том, что я не уверен точно, как долго пользователь будет говорить, поэтому он все равно может быть прерван, если я не поставил его на первое время, которое просто замедляет приложение.

Я занимаюсь исследованиями и играю с классом Handler немного, но не полностью понял, как это сделать ... кому-нибудь помочь?

ответ

2

Если вы хотите что-то сделать, когда заканчивается MediaPlayer, вы можете установить OnCompletionListener с setOnCompletionListener(), чтобы получить обратный вызов при завершении воспроизведения мультимедиа.

+0

Благодарим за это! –

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