【问题标题】:OpenSL - Poor Seeking with Audio Player ObjectOpenSL - 音频播放器对象搜索不佳
【发布时间】:2013-08-25 19:09:39
【问题描述】:

我正在编写一个 Android 应用程序,该应用程序需要能够以良好的准确度找到大型 mp3 音频文件(约 90 分钟)中的特定点。

目前,我正在使用 OpenSL 方法和音频播放器对象,该对象具有指定 mp3 文件和 MIME 信息的 URI 数据源。

为了测试这一点,我使用播放器上的 SLSeekITF 接口来寻找特定点(以毫秒为单位)。但是,我发现搜索性能很差且不一致。通常,音频与应有的位置相差 1-10 秒。有时领先,有时落后。使用较短的 mp3 文件时性能稍好一些,但还远远不够。

Seek 模式(“准确”和“快速”)似乎对 SLSeekITF 没有任何影响。

在其他平台上,我可以让搜索位置非常准确

-有谁知道如何从 OpenSL 音频播放器中获得更好的准确性? - 此实施是否存在已知问题? -是否有其他 mp3 解码器可以提供更好的性能?

谢谢

【问题讨论】:

    标签: android audio android-ndk opensl


    【解决方案1】:

    我还在 Google NDK Group 上发布了这个问题: https://groups.google.com/forum/#!topic/android-ndk/rzVr3A0DjBs

    虽然我从未从 Google 的任何人那里得到官方答复,但我收到的反馈似乎表明媒体播放器和/或使用 OpenSL ES 从 URI 播放音频已知存在错误。

    我最终解决了这个问题,方法是使用具有搜索能力的 3rd 方 mp3 解码器和 OpenSL ES 中的 Buffer Queue Audio Player 对象来播放音频样本。

    很难做到,但很有效。

    【讨论】:

      猜你喜欢
      • 2016-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      • 1970-01-01
      • 2012-12-23
      • 1970-01-01
      • 2014-02-06
      相关资源
      最近更新 更多