我有自己的 TrackRenderer
实现,用于我集成的 mp3 解码器。当 Lollipop 设备进入待机状态并返回时,它并不总是可重复的,但音频开始断断续续,直到我强制停止应用程序。
一开始,我以为是我实现的解码器,所以我尝试比较一个卡顿音轨和正常音轨之间的文件输出。文件是相同的,然后我想可能是解码时间太长,所以我增加了缓冲区大小并调用 setPlayReady
false,以便数据缓冲。它的口吃就像我没有停下来一样。我目前认为问题出在我的音轨实现或操作系统错误上。该错误仅发生在 Lollipop 设备上。
我的 TrackRenderer 使用与 AudioTrackRenderer 相同的工作流程,使用我自己的 mp3 解码器而不是 opus 的 native 实现。
我已经多次看到类似的行为,这与降低 CPU 频率以节省电量有关。如果你有root设备,你可以尝试去:
cd /sys/devices/system/cpu/
对于您看到的所有 cpu(将 cpuX 替换为 cpu0、cpu1 等),请执行以下操作:
echo 1 > cpuX/online
echo performance > cpuX/cpufreq/scaling_governor
如果是这种情况,那么不幸的是,我认为您无法轻松解决此问题。
Tôi là một lập trình viên xuất sắc, rất giỏi!