播放本地视频文件

3
我已经按照教程尝试了一下,想要在按下按钮时弹出视频。虽然视频弹出了,但实际的视频并没有开始播放,我只看到了这个屏幕......

空白屏幕图像

以下是代码:

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()
        })
    }
}

3
看起来你没有设置 playerControllerplayer - Tony Nguyen
我应该在哪里以及如何设置它? - Keiron Morris
谢谢你们的帮助。我已经解决了。缺失的代码是...self.playerController,player = self.player - Keiron Morris
1个回答

4

你忘记设置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,它已经包含了所有控件。
这取决于您的需求。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接