如何使 AVPlayer 和 AVPlayerLayer 可滚动(AVFoundation)

How to make AVPlayer & AVPlayerLayer scrollable (AVFoundation)

我正在使用 collectionView 显示两者 images/videos。

我正在从 Firebase 检索内容。

有了图片,我就可以滚动了。我添加了一个滚动视图并手动添加了 20 个图像视图,因为 Firebase 不允许批量检索 images/content。然后检查一个值是否存在,如果存在,则显示某个索引处的内容(图1-20)。

在这段代码中定义某个数字时,我似乎确实注意到了:

  func numberOfSections(in collectionView: UICollectionView) -> Int {
        return 1

    }

我可以滚动视频。然而,由于我无法检索多个图像,我采用了更不方便的方式或添加 20 个 imageView。要显示视频,我正在执行以下操作:

   if let firstVidURLString = post?.firstVideoURL, let firstVideoURL = URL(string: firstVidURLString) {
            self.volumeView.isHidden = false
            videoPlayer = AVPlayer(url: firstVideoURL)
            videoPlayerLayer = AVPlayerLayer(player: videoPlayer)
            videoPlayerLayer?.frame = self.firstImageView.frame
            videoPlayerLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
            layoutIfNeeded()
            videoPlayerLayer?.zPosition = 0
            self.contentView.layer.addSublayer(videoPlayerLayer!)
            self.volumeView.layer.zPosition = 1
            videoPlayer?.play()
            videoPlayer?.isMuted = isMuted
        }

我很满意它的放置方式,我已经根据我拥有的第一个图像视图定义了 frame/bounds。当然,这应该可以帮助我滚动?因为它占用与一个图像视图相同的大小。 las,视频 player/video 层只是静态的,不符合滚动视图。关于如何解决这个问题的任何想法?

谢谢。

想通了。这是为以后的任何人准备的。

将您的 scrollView(如果有的话)连接到相应的 .swift 文件,即 ViewController、CollectionViewCell 等

完成后,只需添加这一行。

self.[your scrollview].layer.addSublayer(视频层名称!)

你会没事的!