我正在为Mac创建一个HTTP Live Streaming Client,它将控制大屏幕上的视频播放。我的目标是在主屏幕上具有控件UI,在辅助屏幕上具有全屏视频。
使用AVFoundation,我已经能够成功打开流并从控件UI控制流的各个方面,现在我尝试在辅助屏幕上复制视频。事实证明,这比我想象的要困难得多。
在控制屏幕上,我有一个AVPlayerLayer,它显示来自AVPlayer的视频内容。我的目标是创建另一个AVPlayerLayer,并将其发送给同一播放器,以便两个播放器在两个不同的 View 中同时播放同一视频。但是,这是行不通的。
深入研究,我在AVFoundation文档中发现了这一点:
这实际上对我没有用,因为我需要在两个 View 中都能正确显示视频。
我可以从相同的AVAsset创建一个新的AVPlayerItem实例,然后创建一个新的AVPlayer并将其添加到一个新的AVPlayerLayer并显示视频,但是它们不再同步,因为它们是两个不同的播放器,产生两个不同的音频流同一流的不同部分。
是否有人对如何将相同的AVPlayer内容转换为两个不同的 View 有任何建议?也许某种CALayer镜像技巧?
最佳答案
AVSyncronizedLayer可能会有所帮助。我以不同的方式使用它(同步两个不同的媒体对象,而不是同一个),但原则上应该可以加载两次相同的项目,然后使用AvSyncronized层保持同步。
关于calayer - 同时在两个 View 上显示AVPlayer内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7849609/