kch*_*ood 7 avfoundation calayer nsview http-live-streaming avplayer
我正在为Mac创建一个HTTP Live Streaming Client,它将控制大屏幕上的视频播放.我的目标是在主屏幕上显示控制UI,在辅助屏幕上显示全屏视频.
使用AVFoundation,我已经成功地从我的控制UI打开流并控制它的所有方面,我现在正试图在辅助屏幕上复制视频.事实证明这比我想象的更难......
在控制屏幕上,我有一个AVPlayerLayer,它显示来自AVPlayer的视频内容.我的目标是创建另一个AVPlayerLayer,并将其发送到同一个播放器,以便两个播放器在两个不同的视图中同时播放相同的视频.但是,这是行不通的.
深入挖掘,我在AVFoundation文档中发现了这一点:
您可以使用相同的AVPlayer对象创建任意数量的播放器图层.只有最近创建的播放器层才能在屏幕上实际显示视频内容.
这对我来说实际上是无用的,因为我需要在两个视图中正确显示视频.
我可以从相同的AVAsset创建一个新的AVPlayerItem实例,然后创建一个新的AVPlayer并将其添加到新的AVPlayerLayer并显示视频,但它们不再同步,因为它们是两个不同的播放器,生成两个不同的音频流播放同一个流的不同部分.
有没有人对如何将相同的AVPlayer内容分成两个不同的视图有任何建议?也许某种CALayer镜像技巧?
AVSyncronizedLayer 可能会有所帮助。我以不同的方式使用它(同步两个不同的媒体对象而不是同一个媒体对象),但原则上应该可以加载同一项目两次,然后使用 AvSyncronized 层来保持它们同步。
归档时间: |
|
查看次数: |
1292 次 |
最近记录: |