菜鸟教程小白 发表于 2022-12-12 13:26:21

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(&#34;check&#34;)

    AVPlayerVC.view.frame = self.view.frame
    AVPlayerVC.view.sizeToFit()
    AVPlayerVC.showsPlaybackControls = false
    self.view.addSubview(AVPlayerVC.view)

    let videoURL = NSURL(string: &#34;http://URL&#34;)


    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(&#34;check&#34;)
    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]
查看完整版本: ios - 将 AVPlayer subview 添加到 UIView