如何使 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(视频层名称!)
你会没事的!
我正在使用 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(视频层名称!)
你会没事的!