我正在使用MediaCode,MediaExtractor和AudioTrack创建自己的Media Player实现。我需要对从本地存储的音频文件中读取的解码mp3样本执行失真 - 因此自定义实现。出于这个原因,我需要实现自己的seekTo
和getCurrentPosition
函数。但是,我不确定如何实施后者。
我可以设置一个听众来增加位置,但这听起来像一个可怕的想法,可能不准确。最好的方法是什么?我希望支持16级或更高级别的API。
答案 0 :(得分:2)
答案来自使用MediaExtractor。一旦提取器通过extractor.readSampleData(...)
方法读取了样本数据,就会加载一个样本。
对extractor.getSampleTime()
的后续调用以微秒提供当前时间。将该值除以1,000得出毫秒值。我将此变量存储为其读取,并且它是后续调用我的自定义播放器的getCurrentPosition()
方法的源。