gpt4 book ai didi

ios - 两个 AVPlayer 视频不同步(Swift)

转载 作者:行者123 更新时间:2023-11-28 10:52:26 25 4
gpt4 key购买 nike

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

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

我没有创建 AVMutableComposition 的选项,正如我在其他帖子中看到的那样,那么是否有两个独立的播放器真正保持同步并完全同时播放?

谢谢!

最佳答案

如果要实现同步,应该用AVPlayer分别加载视频,观察每个播放器的AVPlayerItemStatus属性。只有当所有玩家的状态都为 .readyToPlay 时,您才能循环遍历玩家并设置 .rate 属性。

编辑:

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

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

关于ios - 两个 AVPlayer 视频不同步(Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45550032/

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