gpt4 book ai didi

swift - 尝试在 Swift 中播放音频时出现 fatal error

转载 作者:行者123 更新时间:2023-11-28 09:09:30 25 4
gpt4 key购买 nike

尝试播放音频但不断收到 fatal error :

unexpectedly found nil while unwrapping an Optional value

这是我的代码:

import UIKit
import AVFoundation

class PlaySoundsViewController: UIViewController {

var audioPlayer : AVAudioPlayer!

override func viewDidLoad() {

super.viewDidLoad()
// Do any additional setup after loading the view.
if var filePath = NSBundle.mainBundle().pathForResource("movie", ofType: "mp3"){
var filePathURL = NSURL.fileURLWithPath(filePath)
var audioPlayer = AVAudioPlayer(contentsOfURL: filePathURL!, error: nil)

}else{
println("the filePath is empty")
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func playSlowAudio(sender: UIButton) {
//play sloooowly
audioPlayer.play()
}
}

最佳答案

看起来 var filePathURL = NSURL.fileURLWithPath(filePath) 返回 nil,包裹在一个 Optional 中。然后在下一行 filePathURL! 强制 Optional 展开,导致 nil 并给出您看到的错误。

您应该检查以确保 filePath 对于您尝试加载的文件是正确的。确保文件在您的包中并且您输入的文件名正确。在那里设置断点并进行调试可能会有所帮助。

此外,为了更安全,您可能需要更改 if 语句,使 NSURL.fileURLWithPath(filePath) 成为 if 的一部分:

if let filePath = NSBundle.mainBundle().pathForResource("movie", ofType: "mp3"),
let filePathURL = NSURL.fileURLWithPath(filePath) {
var audioPlayer = AVAudioPlayer(contentsOfURL: filePathURL, error: nil)

}else{
println("the filePath is empty OR the file did not load")
}

另请注意:我使用 let 而不是 var 作为 if 语句中的变量,因此它们是常量。最好尽可能使用 let

关于swift - 尝试在 Swift 中播放音频时出现 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29731358/

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