【发布时间】:2015-10-20 20:35:51
【问题描述】:
我有自己的 TrackRenderer 实现,用于我集成的 mp3 解码器。当棒棒糖设备进入待机状态并恢复时,它并不总是可重复的,但音频开始断断续续,直到我强制停止应用程序。
一开始,我以为是我实现的解码器,所以我尝试比较一个卡顿音轨和正常音轨之间的文件输出。文件是相同的,然后我想可能是解码时间太长,所以我增加了缓冲区大小并调用setPlayReady false,以便数据缓冲。它的口吃就像我没有停下来一样。我目前认为问题出在我的音轨实现或操作系统错误上。该错误仅发生在 Lollipop 设备上。
我的 TrackRenderer 使用与 AudioTrackRenderer 相同的工作流程,我自己为 mp3 解码器而不是 opus 实现了本机实现。
【问题讨论】:
-
如果数据在好的和坏的情况下是相同的,那么它可能是元数据。您可以检查报告的采样率是否相同?
-
好的,因为这个错误很难复制,所以我没有机会测试采样率。我相信它们是相同的,当我可以确认时会更新我的帖子。添加 2 项改变,当 (feedInputBuffer()) {} 循环使用大缓冲区时,口吃逐渐消失。虽然不循环,但它会无限期地结结巴巴。所以看起来我正在处理解码速度或数据输入速度变慢的问题。将尝试用每秒字节数来证明它。
标签: android mp3 audiotrack exoplayer