android - 同步播放两个 MediaPlayer 对象 [Android]

标签 android synchronization android-mediaplayer

我在本地有两个媒体文件 - mp4 视频和 m4a 音频,它们必须同步播放。为此,我使用 MediaPlayer 对象,同时调用所有开始/暂停方法。

有时我在播放器开始后立即看到音频和视频之间的差异,有时在点击暂停/恢复后。

我添加了日志,并看到在暂停媒体播放器后,它们的位置不同(例如,MediaPlayer 的音频文件:1820ms,MediaPlayer 的视频文件:1760ms)。

一件更有趣的事情是,对音频文件的 seekTo 操作效果很好,而对视频来说,它真的是不可预测的。

请提出这种行为的原因是什么以及可以使用哪些解决方案来解决这个问题?

最佳答案

我认为视频时序的这种效果取决于包含完整信息帧的“关键帧”是如何编码的。只能定位到这些关键帧之一。 视频编辑软件通过将增量从中间 i 帧滚动到准确的搜索位置来解决这个问题。

关于android - 同步播放两个 MediaPlayer 对象 [Android],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28834995/

相关文章:

android - 如何在Android上进行录音并进行音频和视频时间同步

java - 这里需要 volatile 吗?

android - Android 媒体播放器上的错误

android - 范围选择器/范围搜索栏来修剪视频,包括缩略图

android - 如何解决服务类的 ' ANR Reason: executing service ' 错误?

java - Unity中的Android Plugins是否可以运行onSensorChanged()等监听器?

java - 密码管理器-java中的自动id和密码

javascript - 修改 alert() 标题(Android Webview 中的 Javascript)

android - 更新安卓应用

java - 将多个键添加到 hashMap 中的值