Я должен прочитать следующий текст (текст) и отобразить его, когда время воспроизведения звука достигает определенного значения - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть время начала каждого предложения, произносимого в аудио. Я могу получить текущее время аудио, используя MediaPlayer.getCurrentPosition (). Что я хочу знатьявляется: Какой класс или интерфейс я должен использовать, чтобы можно было непрерывно контролировать аудио время, и когда оно достигает определенного времени (моего времени), я мог бы прочитать следующий текст и обновить текстовое представление.

Мои аудио файлытак долго (в мегабайтах) и будет воспроизводиться с SDCard ..

Могу ли я использовать класс Android.AudioTrack в статическом режиме, (я не уверен, что его можно использовать, но прочитайте документацию и размер объекта AudioTrackили размер буфера зависит от доступной памяти) Может ли MediaPlayer решить эту проблему или какой-то другой интерфейс / класс и т. д. или что-то в этом роде ..

Пожалуйста, помогите мне с возможной идеей(s).

пс: я новичок в Android, но сумасшедший об этом ..

Примечание [использование MediaPlayer.setOnCompletionListener (..) в может сделать это вконец аудио-файлано, как я уже сказал, я хочу сделать это в определенное время воспроизведения.]

1 Ответ

0 голосов
/ 11 декабря 2011

Недостатком AudioTrack является то, что вам необходимо иметь декодированный аудиофайл (то есть данные LPCM). Если ваши аудиофайлы не в формате lpcm (в чем я сомневаюсь), вам нужно как-то самостоятельно декодировать данные. Но отслеживание прогресса в этом случае является легкой задачей.

Но если у вас все в порядке с точностью около 200 мс, вы можете попробовать использовать таймер на основе Handler и проверить текущее состояние MediaPlayer в этом таймере. Таким образом, вам не нужно декодировать данные самостоятельно.

Пример Handler таймера на основе: Повторить задачу с задержкой? .

...