使用AVAudioSession播放音频问题

时间:2015-10-01 20:12:50

标签: ios avfoundation swift2 avaudioplayer avaudiosession

当前代码:

@IBAction func sound1(sender: UIButton)
{
    var sound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("Sound1", ofType: "wav")!)

    do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
    } catch _ {
    }
    do {
        try AVAudioSession.sharedInstance().setActive(true)
    } catch _ {
    }

    var error: NSError?
    do {
        audioPlayer = try AVAudioPlayer(contentsOfURL: sound)
    } catch var error1 as NSError {
        error = error1
        audioPlayer = nil
    }
    audioPlayer.prepareToPlay()
    audioPlayer.volume = 1
    audioPlayer.play()
}

这是我将此项目更新为Swift 2之前的当前代码。

audioPlayer = nil

尝试运行应用时遇到的问题是:

  

无法将“NilLiteralConvertible”类型的值指定为“AVAudioPlayer”类型的值

1 个答案:

答案 0 :(得分:1)

这意味着您的变量audioplayer不是可选的,因此无法设置为nil

要么将其设为可选,请将其与try? 一起使用(请注意?而不使用do catch,或者不要尝试将其设置为{{ 1}}如果您想在nil内继续使用try