ios - 将 AVPlayer subview 添加到 UIView
<p><p>我正在使用以下代码创建一个启用了分页的垂直 ScrollView ,效果非常好。现在我想将 AVPlayer (?) 类型的 subview 添加到 <code>homeView</code>、<code>view2</code>、<code>view3</code>。我可以将 <code>setupCustomPlayer()</code> 放在 <code>initiateScrollView()</code> 函数中,该函数也非常有效。但是,它不附属于任何前面提到的观点。如果我尝试使用函数 <code>addSubview(anything)</code> 添加 subview ,它会告诉我需要一个 UIView。我需要 UIViews,因为垂直滑动提要非常重要。有人知道如何将其添加为 subview 吗?该视频将覆盖整个屏幕并用作人们可以说的背景视频(如果您想知道的话)</p>
<h1>代码:</h1>
<pre><code>func setupCustomPlayer() {
print("check")
AVPlayerVC.view.frame = self.view.frame
AVPlayerVC.view.sizeToFit()
AVPlayerVC.showsPlaybackControls = false
self.view.addSubview(AVPlayerVC.view)
let videoURL = NSURL(string: "http://URL")
let player = AVPlayer(url: videoURL! as URL)
AVPlayerVC.player = player
AVPlayerVC.player?.play()
}
func initiateScrollView() {
//create scrollView with paging enabled
let scrollView = UIScrollView(frame: view.bounds)
scrollView.isPagingEnabled = true
view.addSubview(scrollView)
//do not show vertical scroll indicator
scrollView.showsVerticalScrollIndicator = false;
//get page size
let pageSize = view.bounds.size
//individual views
let homeView = UIView()
homeView.backgroundColor = .green
let view2 = UIView()
view2.backgroundColor = .blue
let view3 = UIView()
view3.backgroundColor = .red
//array with individual views
let pagesViews =
//amount of views
let numberOfPages = pagesViews.count
//add subviews (pages)
for (pageIndex, page) in pagesViews.enumerated(){
page.frame = CGRect(origin: CGPoint(x:0 , y:CGFloat(pageIndex) * pageSize.height), size: pageSize)
scrollView.addSubview(page)
}
//define size of scrollView
scrollView.contentSize = CGSize(width: pageSize.width, height: pageSize.height * CGFloat(numberOfPages))
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>你能试试这个吗?</p>
<pre><code>func setupCustomPlayer() {
print("check")
let player = AVPlayer(url: yourFileUrl)
var playerLayer: AVPlayerLayer?
playerLayer = AVPlayerLayer(player: player)
playerLayer?.videoGravity = AVLayerVideoGravity.resizeAspectFill
playerLayer!.frame = self.view.frame
self.view.layer.addSublayer(playerLayer!)
player.play()
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 将 AVPlayersubview 添加到 UIView,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/43968452/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/43968452/
</a>
</p>
页:
[1]