【发布时间】:2013-09-19 04:08:47
【问题描述】:
我有兴趣在 iOS 中使用 AVCaptureSession 录制媒体,同时使用 AVPlayer 播放媒体(具体来说,我正在播放音频和录制视频,但我不确定这是否重要)。
问题是,当我稍后一起播放生成的媒体时,它们不同步。是否可以通过确保播放和录制同时开始,或者通过发现它们之间的偏移量来同步它们?我可能需要同步大约 10 毫秒。假设我总是可以捕获音频是不合理的(因为用户可能会使用耳机),因此无法通过分析原始音频和录制的音频进行同步。
This question 建议可以同时结束播放和录制,并以这种方式确定结果长度的初始偏移量,但我不清楚如何让它们同时结束。我有两种情况:1)音频播放用完,2)用户点击“停止录制”按钮。
This question 建议启动,然后应用一个固定的但可能与设备相关的延迟,这显然是一种 hack,但如果它对音频足够好,那么视频显然值得考虑。
我可以使用另一个媒体层来执行所需的同步吗?
相关:this question 未得到答复。
【问题讨论】:
-
这可能会有所帮助...stackoverflow.com/a/7219499/2700842 会有一点延迟。您可以尝试将它们重新编辑在一起。 developer.apple.com/library/Mac/DOCUMENTATION/AudioVideo/… 只需将领先资产上的 TimeRange 调整为稍后开始。
-
你有没有让这个工作没有延迟?我有同样的问题。我已经尝试使用
setRate:time:atHostTime:使用第一个样本缓冲区的 PTS,但它仍然不同步。
标签: ios synchronization avfoundation avplayer avcapturesession