10

我有兴趣在 iOS 中使用 AVCaptureSession 录制媒体,同时使用 AVPlayer 播放媒体(具体来说,我正在播放音频和录制视频,但我不确定这是否重要)。

问题是,当我稍后一起播放生成的媒体时,它们不同步。是否可以通过确保播放和录制同时开始,或者通过发现它们之间的偏移量来同步它们?我可能需要同步大约 10 毫秒。假设我总是可以捕获音频是不合理的(因为用户可能使用耳机),因此通过分析原始和录制的音频进行同步不是一种选择。

这个问题表明可以同时结束播放和录制,并以这种方式确定结果长度的初始偏移量,但我不清楚如何让它们同时结束。我有两种情况:1)音频播放用完,2)用户点击“停止录制”按钮。

这个问题建议启动,然后应用一个固定的,但可能与设备相关的延迟,这显然是一种黑客行为,但如果它对音频来说足够好,那么对于视频来说显然值得考虑。

我可以使用另一个媒体层来执行所需的同步吗?

相关:这个问题没有答案。

4

1 回答 1

0

如果您专门使用 AVPlayer 播放音频,我建议您使用 AudioQueueServices 来播放音频。它的无缝和快速,因为它通过缓冲区读取缓冲区和播放暂停比 AVPLlayer 更快

您也可能缺少 [avPlayer prepareToPlay] 的初始语句,这可能会导致它在播放音频之前同步大量开销。希望它可以帮助你。

于 2013-12-11T15:31:15.013 回答