gpt4 book ai didi

iOS 自定义 UIViewController 错误

转载 作者:行者123 更新时间:2023-11-29 00:14:29 24 4
gpt4 key购买 nike

在我的 Ios 应用程序的登录屏幕中,我正在尝试显示视频。我在堆栈溢出上看到了一个很好的例子,说明如何做这样的事情。我自己尝试了代码并遇到了错误。我打算在原始帖子上评论我的错误,但我的帐户没有足够的声誉来这样做。当我在我的模拟设备上运行时,我的代码返回给我一个错误:

fatal error :在展开可选值时意外发现 nil

(数据库)

我设法使用第 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
}
}

我的项目文件中确实有一个名为“space”的 mp4 视频。

This is my project tree with my video

如果能解释这是怎么发生的或为什么会发生,以及我可以采取什么措施来解决这个问题,我们将不胜感激。

最佳答案

我已经检查过,您的代码运行正常。

只需检查一下,视频应位于 Target 中“构建阶段”选项卡的“复制捆绑资源”下。

如果不存在,请添加与下面屏幕截图相同的内容。

Should be in Build Phases tab

关于iOS 自定义 UIViewController 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45604415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com