1

我正在使用 MediaCode、MediaExtractor 和 AudioTrack 创建自己的媒体播放器实现。我需要对从本地存储的音频文件中读取的解码 mp3 样本进行失真处理,因此需要自定义实现。出于这个原因,我需要实现我自己的seekTogetCurrentPosition功能。但是,我不确定我将如何实施后者。

我可以设置一个监听器在播放时增加位置,但这听起来是个糟糕的主意,而且可能不准确。最好的方法是什么?我希望支持 API 级别 16 或更高级别。

4

1 回答 1

2

答案来自使用 MediaExtractor。一旦提取器通过该extractor.readSampleData(...)方法读取了样本数据,样本就被加载了。

随后的调用以微秒extractor.getSampleTime()为单位提供当前时间。将该值除以 1,000 得到毫秒值。我将此变量存储为它的读取,它是后续调用我的自定义播放器方法的源。getCurrentPosition()

于 2017-03-08T18:01:22.643 回答