所以我正在将当前代码从UIWebView中的实时源加载到UIView它自己的意图是为了向视频体验转移Twitch / ESPN,我能够从URL加载视频但是无法到目前为止将其加载到将内联的UIView中。这是我当前的代码(我还没有尝试加载缩略图或内联版本。)我应该如何前进?从长远来看,加载一个UIWebView会更好,同时还能让我在以后扩展Versitility吗?
import UIKit
import AVFoundation
import AVKit
class ViewController: UIViewController {
@IBOutlet weak var videoPreviewLayer: UIView!
var player: AVPlayer!
var avpController = AVPlayerViewController()
override func viewDidLoad() {
super.viewDidLoad()
let moviePath = Bundle.main.path(forResource: "http://hidden/index.m3u8", ofType: "m3u8")
if let path = moviePath {
let url = NSURL.fileURL(withPath: path)
self.player = AVPlayer(url: url)
self.avpController = AVPlayerViewController()
self.avpController.player = self.player
avpController.view.frame = videoPreviewLayer.frame
self.addChildViewController(avpController)
self.view.addSubview(avpController.view)
}
// Do any additional setup after loading the view.
}
}
我认为问题在于:“self.view.addSubview(avpController.view)”。尝试“AVPlayerLayer”属性,如下所示:
guard let videoURL = URL(string: urlString) else {
return
}
let player = AVPlayer(url: videoURL)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
player.play()