繁体   English   中英

两个AVPlayer视频不同步(快速)

[英]Two AVPlayer videos out of sync (Swift)

我有两个AVPlayer()项播放相同持续时间(10秒)的视频。 目标是让它们循环并彼此保持同步。 我将它们添加为同一UIView子层,然后在它们中的每一个上调用player.play()

但是,问题在于,由于代码执行显然有最小的延迟,因为一个延迟在另一个延迟之后被调用,因此视频不同步(尽管只有几毫秒,但很明显)。

正如我看到的其他帖子所建议的那样,我没有选择创建AVMutableComposition的方法,因此,是否有两个真正独立的播放器真正保持同步并同时播放?

谢谢!

如果要实现同步,则应分别使用AVPlayer加载视频并观察每个播放器的AVPlayerItemStatus属性。 只有当所有的球员都有状态.readyToPlay可以遍历球员和设置.rate属性。

编辑:

您也可以使用setRate(_:time:atHostTime:)同步它们。 不要忘记在调用setRate之前开始使用preroll(atRate:completionHandler:)加载媒体数据。 基本上:

  • 等待readyToPlay
  • 当所有玩家都准备好时preroll(atRate:completionHandler:)
  • setRate(_:time:atHostTime:)当所有玩家都已预滚动时

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM