我正在尝试在名为AVPlayerViewController的容器视图中播放视频,但是当您单击播放器视图播放视频时,它不会播放。有没有什么办法解决这一问题?以下是我用来尝试播放视频的代码:
import UIKit
import AVKit
class IntroductionViewController: UIViewController {
var avPlayer: AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
}
func playVideo() {
let filepath: String? = Bundle.main.path(forResource: "Video", ofType: "mp4")
let fileURL = URL.init(fileURLWithPath: filepath!)
avPlayer = AVPlayer(url: fileURL)
let avPlayerController = AVPlayerViewController()
avPlayerController.player = avPlayer
avPlayerController.showsPlaybackControls = true
avPlayerController.view.frame = CGRect(x: 44, y: 128, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
// Turn on video controlls
avPlayerController.showsPlaybackControls = true
// play video
avPlayerController.player?.play()
self.view.addSubview(avPlayerController.view)
}
}
答案 0 :(得分:0)
您的代码中存在一些概念错误;如果您希望自己的IntroductionViewController封装视频,则应将AVPlayerViewController添加为子级:
import UIKit
import AVKit
class IntroductionViewController: UIViewController {
var avPlayer: AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
playVideo()
}
func playVideo() {
let filepath: String? = Bundle.main.path(forResource: "videoplayback", ofType: "mp4")
let fileURL = URL.init(fileURLWithPath: filepath!)
avPlayer = AVPlayer(url: fileURL)
let avPlayerController = AVPlayerViewController()
avPlayerController.player = avPlayer
avPlayerController.view.frame = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
// Turn on video controlls
avPlayerController.showsPlaybackControls = true
// play video
avPlayerController.player?.play()
self.view.addSubview(avPlayerController.view)
self.addChild(avPlayerController)
}
}
但是您的IntroductionViewController也可以扩展AVPlayerViewController:
import UIKit
import AVKit
class AVViewController: AVPlayerViewController {
var avPlayer: AVPlayer!
override func viewDidLoad() {
super.viewDidLoad()
setupAndPlay()
}
func setupAndPlay() {
let filepath: String? = Bundle.main.path(forResource: "videoplayback", ofType: "mp4")
let fileURL = URL.init(fileURLWithPath: filepath!)
// Setup AVPlayer
avPlayer = AVPlayer(url: fileURL)
self.player = avPlayer
self.view.frame = CGRect(x: 44, y: 128, width: UIScreen.main.bounds.size.width, height: UIScreen.main.bounds.size.height)
// Turn on video controlls
self.showsPlaybackControls = true
// play video
self.player?.play()
}
}
选择您的方式:)