我正在为 Mac 创建一个 HTTP Live Streaming Client,它将控制大屏幕上的视频播放。我的目标是在主屏幕上有一个控制 UI,在辅助屏幕上有一个全屏视频。
使用 AVFoundation,我已经成功地能够从我的控制 UI 打开流并控制它的所有方面,我现在正尝试在辅助屏幕上复制视频。事实证明这比我想象的要困难......
在控制屏幕上,我有一个 AVPlayerLayer,它显示来自 AVPlayer 的视频内容。我的目标是创建另一个 AVPlayerLayer,并将其发送到相同的播放器,以便两个播放器在两个不同的视图中同时播放相同的视频。但是,这是行不通的。
深入挖掘,我在 AVFoundation 文档中发现了这一点:
您可以使用相同的 AVPlayer 对象创建任意数量的播放器层。只有最近创建的播放器层才会真正在屏幕上显示视频内容。
这对我来说实际上没用,因为我需要在两个视图中正确显示视频。
我可以从同一个 AVAsset 创建一个新的 AVPlayerItem 实例,然后创建一个新的 AVPlayer 并将其添加到一个新的 AVPlayerLayer 并显示视频,但它们不再同步,因为它们是两个不同的播放器,生成两个不同的音频流播放同一流的不同部分。
有人对如何将相同的 AVPlayer 内容放入两个不同的视图有任何建议吗?也许某种 CALayer 镜像技巧?