在我的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