gpt4 book ai didi

xcode - 尝试在 Swift 中播放声音时出现 fatal error

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

我已经完成了本教程 here .您要做的最后一件事是让按钮在按下时发出声音。然后我想继续使用相同的逻辑来制作音板应用程序。但是,当我剥离除了在新项目中发出噪音之外的非必要部分时,我开始遇到 fatal error 。

这是我的 ViewController.swfit 文件:

import UIKit
import AVFoundation



class ViewController: UIViewController {

var sample : AVAudioPlayer?

func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer? {
//1
let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String)
let url = NSURL.fileURLWithPath(path!)

//2
var audioPlayer:AVAudioPlayer?

// 3
do {
try audioPlayer = AVAudioPlayer(contentsOfURL: url)
} catch {
print("Player not available")
}

return audioPlayer
}

override func viewDidLoad() {
super.viewDidLoad()

if let sample = self.setupAudioPlayerWithFile("Stomach", type:"aif") {
self.sample = sample
}
}

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

@IBAction func buttonPressed() {
sample?.play()
}


}

这是发生 fatal error 时我的项目

enter image description here

我也试过这个solution但我也有错误。

我在 El Capitan 10.11.3 和 Xcode 7.3 上运行

最佳答案

您的项目中是否包含名为“Stomach.aif”的音频文件?否则,pathForResource 将返回 nil,当您试图强制解包该路径时您将崩溃。您可以使用此函数的更安全版本,但如果它找不到该文件,它仍然不会播放音频从好的方面来说,它不应该崩溃。

func setupAudioPlayerWithFile(file:NSString, type:NSString) -> AVAudioPlayer?  {
var audioPlayer:AVAudioPlayer? = nil

if let path = NSBundle.mainBundle().pathForResource(file as String, ofType: type as String) {
let url = NSURL.fileURLWithPath(path)

do {
try audioPlayer = AVAudioPlayer(contentsOfURL: url)
} catch {
print("Player not available")
}
}

return audioPlayer
}

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

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