gpt4 book ai didi

ios - AVPlayer 不同步

转载 作者:可可西里 更新时间:2023-11-01 03:26:56 27 4
gpt4 key购买 nike

我实在是没思路了,只好再请教各位了...

我正在构建一个使用三个 AVPlayer 实例的 iPhone 应用程序。他们都在同一时间比赛,他们这样做非常重要。我曾经运行过这段代码:

CMClockRef syncTime = CMClockGetHostTimeClock();
CMTime hostTime = CMClockGetTime(hostTime);
[self.playerOne setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
[self.playerTwo setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];
[self.playerThree setRate:1.0f time:kCMTimeInvalid atHostTime:hostTime];

效果很好。但是前几天就不行了,三个播放器大约延迟了300-400ms(这已经很多了,100ms以内的都可以)。其中两个 AVPlayer 有一些音频处理,这比“普通”AVPlayer 需要一些时间,但它以前工作过,currentTime 属性告诉我,这些播放器被延迟了,所以同步似乎失败了。

我不知道它为什么停止工作,我并没有真正改变什么,但我正在使用一个观察器,在那里我可以询问 self.playerX.currentTime 属性,这让我有大约 0.3 的延迟。 4 秒...如果延迟>.1f,我已经尝试重新同步播放器,但延迟仍然存在。所以我认为 player1 和 2 的音频处理不能对延迟负责,因为 currentTime 属性确实知道它们被延迟了(我希望你明白我的意思)。也许你们中有人知道为什么我有如此可怕的延迟,或者能够为我提供另一个想法。

提前致谢!

最佳答案

所以,我找到了解决方案。我忘了 [self.playerX prerollAtRate:]。我想如果观察者是 AVPlayerReadyToPlay 就意味着玩家“真的”准备好了。事实上,事实并非如此。 AVPlayer readyToPlay 之后,还得进行preroll。一旦完成,您就可以同步您的放置器。现在延迟大约为 0.000006 秒。

关于ios - AVPlayer 不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19708383/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com