gpt4 book ai didi

ios - 使用 Swift 播放随机音频文件

转载 作者:搜寻专家 更新时间:2023-10-31 22:35:57 24 4
gpt4 key购买 nike

当我在 iPhone 模拟器中使用 "Shake Gesture" 时,我不断收到以下错误:

Fatal error: unexpectedly found nil while unwrapping an Optional value

这是我的相关代码:

import UIKit
import AVFoundation

class ViewController: UIViewController {

var soundFiles = ["kidLaughing", "pewpew", "pingas", "runningfeet"]
var player: AVAudioPlayer = AVAudioPlayer()

override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
if event.subtype == .MotionShake {
var randomSoundFile = Int(arc4random_uniform(UInt32(soundFiles.count)))
var fileLocation = NSString(string:NSBundle.mainBundle().pathForResource("sounds/" + soundFiles[randomSoundFile], ofType: "mp3")!)

var error: NSError? = nil

player = AVAudioPlayer(contentsOfURL: NSURL(string: fileLocation), error: &error)

player.play()
}
}
}

我有一个名为 sounds 的文件夹,里面有 4 个 mp3 文件。错误发生在这行代码上:

  var fileLocation = NSString(string:NSBundle.mainBundle().pathForResource("sounds/" + soundFiles[randomSoundFile], ofType: "mp3")!)

我已经尝试了所有我能想到的方法来让它工作,但我尝试过的都没有奏效。感谢您的帮助!

最佳答案

这意味着当您断言它不是时,有一个值为 nil 的值。将崩溃行分离成它的组件,并准确找出什么是 nil:

var soundFile = soundFiles[randomSoundFile]
var path = "sounds/" + soundFile
var fullPath = NSBundle.mainBundle().pathForResource(path, ofType: "mp3")!
var fileLocation = NSString(string:fullPath) // fyi, this line is pointless, fullPath is already a string

我猜它在 pathForResource 行崩溃了,因为实际上找不到文件。确保您确实将“声音”目录链接到您的包中。

关于ios - 使用 Swift 播放随机音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27074369/

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