我正在播放一个文件,同时录制另一个文件。理想情况下,稍后,我想要回放它们,与用户在观看第一个剪辑时所经历的完全相同的同步。也就是说,剪辑1中播放的音频(由剪辑2记录)应当在两个剪辑同时播放时匹配(而不是回声)。我知道这永远不会发生,所以我将把剪辑1静音,但是播放它的视频。我希望剪辑1的视频与剪辑2中的音频相匹配......这就是目标。
所以,更容易的问题:让我们假设我已经预先注册了一个AVPlayer(项目)......当我按下“播放”时,我怎样才能以编程方式告知它需要多长时间到达屏幕和扬声器?这是由AVPlayer(项目)中的音频缓冲延迟决定的吗?还是它也是由内核中的东西决定的?音频驱动?无论如何:有没有办法可以衡量它?这将使我更接近我的目标,现在两个剪辑关闭约250毫秒。
有人告诉我使用addBoundaryTimeObserverForTimes,并观察它何时越过零时间。这不起作用。但是,如果我提示剪辑,并将边界设置为1秒,我会在大约1050毫秒后调用。我不知道50ms的延迟是因为回调系统中的时序松动,还是因为实际上有50ms的启动延迟,或者它是否是别的东西。