Android MediaExtractor seek()精确的MP3音频文件

时间:2015-05-22 16:30:51

标签: java android audio mediaextractor

我无法使用Android setDataSource()在seek()上获得合理的准确性。对于某些文件,例如this one,我发现显着的不准确性(在这种情况下约为3秒)。我有以下流程:

  1. 致电selectTrack()seekTo()
  2. 致电play()
  3. 致电MediaExtractor.SEEK_TO_PREVIOUS_SYNC
  4. 在这种情况下,它会寻找不正确的位置,但会报告正确的位置。如果我然后寻求另一个位置,它将继续以相同的幅度离开。但是,如果我寻求0,它会自行纠正,然后将寻找文件中的正确位置。

    这只是MediaExtractor中的限制/错误吗?有没有人有修复/解决方法来获得更高的准确性?我不想在寻找之前在0号位置开始播放,但我想这是一个选择。

    其他一些说明:

    • Android MediaPlayer显示相同的行为。
    • 无论选择SEEK_TO_CLOSEST_SYNC还是Action
    • ,都会发生这种情况
    • 我在KitKat和Lollipop上看到了仿真器和物理设备上的相同问题。
    • 对一个失败文件的快速分析显示“Xing标题中指定的MPEG数据字节数错误”,但是对于播放正常的文件我得到了相同的结果。

0 个答案:

没有答案