从网址将视频加载到视图时出现问题

时间:2019-03-07 03:40:44

标签: swift uiview avfoundation avplayer avkit

因此,我将当前代码从将UIWebView中的实时提要加载到UIView本身转移了,目的是像Twitch / ESPN这样的视频体验,无法从URL加载视频,但无法到目前为止,将其加载到将内联的UIView中。这是我当前的代码(我至今尚未尝试加载缩略图或内联。)我应该如何前进?从长远来看,加载UIWebView会更好,同时仍然允许我稍后扩展多功能性吗?

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.
}

}

1 个答案:

答案 0 :(得分:0)

我认为问题出在这里:“ 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()