播放本地视频文件

Play Local Video File

我按照教程进行操作,并尝试在按下按钮时弹出视频。视频弹出,但实际视频没有开始播放,我只是看到这个屏幕....

Blank Screen image

代码如下:

import UIKit
import AVFoundation
import AVKit

class ViewController: UIViewController {
    var playerController = AVPlayerViewController()
    var player:AVPlayer?

    override func viewDidLoad() {
        super.viewDidLoad()
        let videoString:String? = Bundle.main.path(forResource: "motorbikes", ofType: ".m4v")

        if let url = videoString {
            let videoURL = NSURL(fileURLWithPath: url)

            self.player = AVPlayer(url: videoURL as URL)
        }
    }

    @IBAction func goButton(_ sender: Any) {
        self.present(self.playerController, animated: true, completion: {

            self.playerController.player?.play()
        })
    }
}

您忘记设置 playercontroller 的播放器实例,如 phuc-nguyen 所述

否则你可以使用 AVPlayerLayer 播放视频而不使用 AVPlayerViewController

let player = AVPlayer(url: URL(string: "path/myvideo.mp4")!)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
player.play()

使用 AVPlayerLayer 您可以自定义播放器,例如添加您自己的控件或视图,它通常不会是全屏视图不过

但是,如果您不寻求任何定制,那么坚持使用 AVPlayerViewController 是个不错的选择,它内置了所有控件

取决于您的要求