我有音频中说出的每个句子的开始时间。 我可以使用 MediaPlayer.getCurrentPosition()获取音频的当前时间。 我想知道的是:我应该使用什么类或接口来监视音频时间及其到达时间某些时间(我给定的时间)我可以阅读下一篇文章并在TextView上更新。
我的音频文件很长(以MB为单位),将从sdcard播放..
我可以在静态模式下使用Android.AudioTrack类,(我不确定它是否可以使用但是读取文档和AudioTrack对象大小或其缓冲区大小取决于可用内存) MediaPlayer可以解决这个问题吗?或其他一些接口/类等或某种线程......
请帮助我提出可能的想法。
ps:我是Android的新手,但对此却很蠢。
注意[使用MediaPlayer.setOnCompletionListener(..)可以在音频文件的末尾执行此操作,但正如我所说,我希望在某些播放时间使用它。]
答案 0 :(得分:0)
AudioTrack
的缺点是您需要解码音频文件(即LPCM数据)。如果您的音频文件不是lpcm格式(我怀疑它们是),那么您需要以某种方式自己解码数据。但是在这种情况下跟踪进展是一件容易的事。
但如果您的精确时间大约为200毫秒,则可以尝试使用基于Handler
的计时器并检查该计时器中MediaPlayer
的当前状态。这样您就不需要自己解码数据了。
示例基于Handler
的计时器:Repeat a task with a time delay?。