【问题标题】:In AVFoundation, how to synchronize recording and playback在 AVFoundation 中,如何同步录制和播放
【发布时间】:2013-09-19 04:08:47
【问题描述】:

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

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

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

This question 建议启动,然后应用一个固定的但可能与设备相关的延迟,这显然是一种 hack,但如果它对音频足够好,那么视频显然值得考虑。

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

相关:this question 未得到答复。

【问题讨论】:

标签: ios synchronization avfoundation avplayer avcapturesession


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-22
    • 2011-11-05
    • 2017-04-22
    • 1970-01-01
    • 1970-01-01
    • 2017-10-19
    • 1970-01-01
    相关资源
    最近更新 更多