【问题标题】:Playing a music backwards using MediaExtractor使用 MediaExtractor 向后播放音乐
【发布时间】:2018-10-18 12:38:43
【问题描述】:

我想创建一个向后播放音乐的应用,它使用 Android MediaExtractor 解码音频并向后连接

由于我无法让 MediaExtractor 向后移动它,我尝试将其从末端剪切到某个字节大小,翻转它,播放它,然后剪切下一个末端并播放等等。

为了做到这一点,我们需要使用MediaExtractor.seekTo来快退,但是快退的位置是不明确的。我尝试seekTo用采样率和一定的字节大小计算微秒,但是当使用MediaExtractor.SEEK_TO_CLOSEST_SYNC标志时,连接部分略有偏移并出现噪音。

所以我认为如果我能知道正在同步的字节的位置,或者我可以seekTo以字节为单位,这个问题就可以解决。

任何帮助将不胜感激。

【问题讨论】:

  • 你确定是连接部分稍微移动了,而不是由于在移动磁头之前需要刷新数据而导致的缓冲区欠载错误吗?

标签: android audio-streaming android-mediacodec audio-player mediaextractor android-music-player


【解决方案1】:

既然你想要它反向,你不能使用 SEEK_TO_PREVIOUS_SYNC 来获得更好的匹配,而不是 SEEK_TO_CLOSEST_SYNC

【讨论】:

  • 您好,谢谢您的建议,但它们之间几乎没有区别。您还有其他建议吗?
  • 转到纯 java 并将文件写入临时存储并以这种方式获取确切的属性。例如使用 tarosDSP 或使用beadsproject (github.com/orsjb/beads) 进行实时处理
猜你喜欢
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 1970-01-01
  • 2011-03-26
相关资源
最近更新 更多