使用 NSBundle Audioplayer 找到 nil-optional 值

Found nil-optional value with NSBundle Audioplayer

当我初始化一个 AVAudio 播放器时,我收到一个 found nil 错误。 音乐文件包含在名为 'Sounds'.

的文件夹中

fatal error: unexpectedly found nil while unwrapping an Optional Value

//Code

// instance
    var player : AVAudioPlayer = AVAudioPlayer();

    // ciews


    override func viewDidLoad() {
        super.viewDidLoad()
        // SET UP AUDIO PLAYER AND PLAY A SOUND


        var filePath = NSString(string: NSBundle.mainBundle().pathForResource("Sounds/pig", ofType: "mp3")!);

        var error:NSError? = nil; // craete error pointer with ampersand &


        // EXCEPTION THROWN HERE
        player =  AVAudioPlayer(contentsOfURL: NSURL(string: filePath), error: &error);

感谢任何意见

问题在于它是一个本地文件,所以使用 fileURLWithPath: 而不是字符串:(用于链接)会起作用,但您可以使用 URLForResource(_:withExtension:) 而不是 pathForResource 一步完成:

let fileUrl = NSBundle.mainBundle().URLForResource("Sounds/pig", withExtension: "mp3")!

player =  AVAudioPlayer(contentsOfURL: fileUrl, error: &error)