gpt4 book ai didi

swift - tvOS/Swift 3 : Why is contentOverlayView not displayed?

转载 作者:行者123 更新时间:2023-11-30 12:16:25 28 4
gpt4 key购买 nike

我有以下 tvOS 应用程序的代码。它按照我想要的方式播放视频,但是我设置的 contentOverlayView 没有出现。从我看过的例子来看,我认为它应该有效。有人可以解释一下我做错了什么吗?

import Foundation
import UIKit
import AVKit

class videoPlayer: AVPlayerViewController {

var thePlayer: AVPlayer?
var movieToPlay: AVPlayerItem?
var movieURL: String?
let theVideoPlayer = AVPlayerViewController()

@IBOutlet weak var videoInfo: UIView!

override func viewDidLoad(){
theVideoPlayer.contentOverlayView?.addSubview(videoInfo)
theVideoPlayer.player = thePlayer

self.view.addSubview(theVideoPlayer.view)
theVideoPlayer.view.frame = self.view.frame
NotificationCenter.default.addObserver(self, selector: #selector(videoPlayer.videoDone), name: NSNotification.Name(rawValue: "AVPlayerItemDidPlayToEndTimeNotification"), object: thePlayer?.currentItem)
playVideo(movieURL!)

}

func playVideo(_ movieURL: String){
let movieToPlay = AVPlayerItem(url: URL(string: movieURL)!)
thePlayer = AVPlayer(playerItem: movieToPlay)
thePlayer!.play()
}

func videoDone(){
dismiss(animated: true, completion: nil)
}
}

最佳答案

我对一些事情感到困惑。这是有效的:

import Foundation
import UIKit
import AVKit

class videoPlayer: UIViewController {

var movieURL:String = ""
var movieTitle:String = ""
var playerController:AVPlayerViewController?

@IBOutlet weak var videoInfo: UIView!
@IBOutlet var titleLabel: UILabel!


override func viewDidLoad(){
titleLabel.text = movieTitle
playerController = AVPlayerViewController()
playerController?.player = AVPlayer()
self.addChildViewController(playerController!)
self.view.addSubview((playerController?.view)!)
playerController?.didMove(toParentViewController: self)

playerController?.view.frame = self.view.frame

playerController?.contentOverlayView?.addSubview(videoInfo)

let movieToPlay = AVPlayerItem(url: URL(string: movieURL)!)
playerController?.player = AVPlayer(playerItem: movieToPlay)
playerController?.player?.play()

NotificationCenter.default.addObserver(self, selector: #selector(videoDone), name: NSNotification.Name(rawValue: "AVPlayerItemDidPlayToEndTimeNotification"), object: playerController?.player?.currentItem)
}


func videoDone(){
print("DONE")
dismiss(animated: true, completion: nil)
}

}

UIView 按预期显示。

关于swift - tvOS/Swift 3 : Why is contentOverlayView not displayed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390611/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com