在我的Ios应用程序的登录屏幕上,我试图显示一个视频。我在堆栈溢出中看到了一个关于如何做这种事情的好例子。我尝试了自己的代码,并遇到错误。我打算在原帖中评论我的错误,但我的帐户没有足够的声誉来这样做。我的代码时,我在我的模拟装置恢复运行,以我一个错误,指出:IOS自定义UIViewController错误
致命错误:意外发现零而展开的可选值
(LLDB)
我设法追查有错误使用断点第12行是avPlayer = AVPlayer(url: video!)
虽然这里是我的全码:
import AVFoundation
import UIKit
class VideoBackgroundController: UIViewController {
var avPlayer: AVPlayer!
var avPlayerLayer: AVPlayerLayer!
var paused: Bool = false
override func viewDidLoad() {
let video = Bundle.main.url(forResource:"space", withExtension: "mp4")
//This is where my the error happens
avPlayer = AVPlayer(url: video!)
avPlayerLayer = AVPlayerLayer(player: avPlayer)
avPlayerLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
avPlayer.volume = 0
avPlayer.actionAtItemEnd = .none
avPlayerLayer.frame = view.layer.bounds
view.backgroundColor = .clear
view.layer.insertSublayer(avPlayerLayer, at: 0)
NotificationCenter.default.addObserver(self,
selector: #selector(playerItemDidReachEnd(notification:)),
name: NSNotification.Name.AVPlayerItemDidPlayToEndTime,
object: avPlayer.currentItem)
}
func playerItemDidReachEnd(notification: Notification) {
let p: AVPlayerItem = notification.object as! AVPlayerItem
p.seek(to: kCMTimeZero)
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
avPlayer.play()
paused = false
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
avPlayer.pause()
paused = true
}
}
而且我也有在我的项目文件中名为“空间”的mp4视频。
任何解释如何或为什么会发生什么动作我可以解决这个问题,将不胜感激。
请检查您的视频文件** ** space.mp4下**构建阶段上市公司 - >复制包资源**。如果没有列出,添加并运行你的代码。 – Surjeet
将视频添加到您的Xcode项目 您的项目根目录>您的目标>构建阶段>复制包资源。 你的视频必须在这里。如果不是,那么你应该使用加号按钮 –
@Surjeet添加它这是问题谢谢! – Charles