如何在iOS应用程序中使用Swift 2音频?

我使用SpriteKit和 Swift在Xcode 7测试版上制作了一个游戏,我试图把Audio放在它里面,但是它不是可以使用的,因为Xcode发现了3个错误,我是初学者,我不知道如何解决它们.
import AVFoundation

    var audioPlayer = AVAudioPlayer()


    func playAudio() {
        // Set the sound file name & extension
        var alertSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Flip 02",ofType: "wav")!)

        // Preperation
        AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback,error: nil)
        AVAudioSession.sharedInstance().setActive(true,error: nil)

        // Play the sound
        var error: NSError?
        audioPlayer = AVAudioPlayer(contentsOfURL: alertSound,error: &error)
        audioPlayer.preparetoPlay()
        audioPlayer.play()
}

代码错误在这里

代码1:

AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback,error: nil)

错误1:

Extra argument ‘error’ in call

代码2:

AVAudioSession.sharedInstance().setActive(true,error: nil)

错误2:

Extra argument ‘error’ in call

代码3:

audioPlayer = AVAudioPlayer(contentsOfURL: alertSound,error: &error)

错误3:

Cannot find an initializer for type ‘AVAudioPlayer’ that accepts an argument list of type ‘(contentsOfURL: NSURL,error: inout NSError?)’

你的贡献可能会帮助我.谢谢.

解决方法

使用内部的功能捕捉和使用尝试的投掷:
var audioPlayer = AVAudioPlayer()

func playAudio() {
    do {
        if let bundle = NSBundle.mainBundle().pathForResource("Flip 02",ofType: "wav") {
            let alertSound = NSURL(fileURLWithPath: bundle)
            try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
            try AVAudioSession.sharedInstance().setActive(true)
            try audioPlayer = AVAudioPlayer(contentsOfURL: alertSound)
            audioPlayer.preparetoPlay()
            audioPlayer.play()
        }
    } catch {
        print(error)
    }
}

有关完整的Swift 2错误处理说明,请参见this answer.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...