播放本地视频文件
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 是个不错的选择,它内置了所有控件
取决于您的要求
我按照教程进行操作,并尝试在按下按钮时弹出视频。视频弹出,但实际视频没有开始播放,我只是看到这个屏幕....
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 是个不错的选择,它内置了所有控件
取决于您的要求