我在本地有两个媒体文件 - mp4 视频和 m4a 音频,它们必须同步播放。为此,我使用 MediaPlayer 对象,同时调用所有开始/暂停方法。
有时我在播放器开始后立即看到音频和视频之间的差异,有时在点击暂停/恢复后。
我添加了日志,并看到在暂停媒体播放器后,它们的位置不同(例如,MediaPlayer 的音频文件:1820ms,MediaPlayer 的视频文件:1760ms)。
一件更有趣的事情是,对音频文件的 seekTo 操作效果很好,而对视频来说,它真的是不可预测的。
请提出这种行为的原因是什么以及可以使用哪些解决方案来解决这个问题?
最佳答案
我认为视频时序的这种效果取决于包含完整信息帧的“关键帧”是如何编码的。只能定位到这些关键帧之一。 视频编辑软件通过将增量从中间 i 帧滚动到准确的搜索位置来解决这个问题。
关于android - 同步播放两个 MediaPlayer 对象 [Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28834995/