ios – AVPlayer未同步

ios – AVPlayer未同步,第1张

概述我真的没有想法所以我不得不再问你们…… 我正在构建一个使用三个AVPlayer实例的iPhone应用程序.他们都在同一时间玩,他们这样做非常重要.我以前运行这段代码: CMClockRef syncTime = CMClockGetHostTimeClock();CMTime hostTime = CMClockGetTime(hostTime);[self.playerOne setRate 我真的没有想法所以我不得不再问你们……

我正在构建一个使用三个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属性,这给了我大约.3-.4秒的延迟. ..如果延迟> .1f,我已经尝试重新同步玩家,但延迟仍在那里.所以我认为播放器1和2的音频处理不能对延迟负责,因为currentTime属性确实知道它们被延迟了(我希望你知道我的意思).也许你们中的某些人知道为什么我有这么可怕的延迟,或者能够给我另一个想法.

提前致谢!

解决方法 所以,我找到了解决方案.我忘了[self.playerX prerollAtRate:].我想如果观察者是AVPlayerReadytoplay则意味着玩家“真的”准备好了.事实上,它没有.在AVPlayer readytoplay之后,它必须预先滚动.完成后,您可以同步您的布局器.延迟现在是0.000006秒. 总结

以上是内存溢出为你收集整理的ios – AVPlayer未同步全部内容,希望文章能够帮你解决ios – AVPlayer未同步所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1101043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存