问题描述
您好,我尝试制作视频播放器,但运行它时出现此错误:
此处的代码:
@objc class SwiftViewController: UIViewController {
let canvas = Canvas()
@IBOutlet weak var videoPlayer: VideoPlayer!
let Button: UIButton = UIButton(frame: CGRect(x: 100,y: 100,width: 100,height: 50))
var firstVC: ViewController!
@objc func buttonAction(sender: UIButton!) {
print("Button Swift Tapped")
}
override func viewDidAppear(_ animated: Bool) {
videoPlayer.PlayVideoWithPath("Test_Video",ofType: "mp4")
}
override func viewDidLoad() {
super.viewDidLoad()
Button.setTitle("Swift View",for: .normal)
Button.addTarget(self,action: #selector(buttonAction),for: .touchUpInside)
self.view.addSubview(Button)
self.view.addSubview(canvas)
canvas.backgroundColor = .white
canvas.frame = view.frame
}
}
和VideoPlayer类:
class VideoPlayer: UIView {
@IBOutlet weak var vmPlayer: UIView!
var player: AVPlayer?
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
required init?(coder: NSCoder) {
super.init(coder: coder)
commonInit()
}
fileprivate func commonInit() {
let viewForXib = Bundle.main.loadNibNamed(
"../Controllers/VideoPlayer",owner: self,options: nil)![0] as! UIView
viewForXib.frame = self.bounds
addSubview(viewForXib)
addplayerToView(self.vmPlayer)
}
fileprivate func addplayerToView(_ view: UIView) {
player = AVPlayer()
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.bounds
playerLayer.videoGravity = .resizeAspectFill
view.layer.addSublayer(playerLayer)
NotificationCenter.default.addobserver(
self,selector: #selector(playerEndplay),name: .AVPlayerItemDidplayToEndTime,object: nil)
}
func PlayVideoWithPath(_ path: String,ofType type:String) {
guard let filepath = Bundle.main.path(
forResource: path,ofType: type) else { return}
let videoURL = URL(fileURLWithPath: filepath)
let playerItem = AVPlayerItem(url: videoURL)
player?.replaceCurrentItem(with: playerItem)
player?.play()
}
@objc func playerEndplay() {
print("Player ends Playing video")
}
}
感谢您的帮助:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)