使用 AVAudioSession 播放音频
Issue playing audio with 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
我在尝试 运行 应用程序时遇到的问题是:
Cannot assign a value of type 'NilLiteralConvertible' to a value of type 'AVAudioPlayer'
这意味着您的变量 audioplayer
不是可选的,因此不能设置为 nil
。
要么将其设为可选,然后将其与 try?
(注意 ?
) 一起使用,而不使用 do catch
,或者不要尝试如果您想在 do catch
.
中继续使用 try
,请将其设置为 nil
当前代码:
@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
我在尝试 运行 应用程序时遇到的问题是:
Cannot assign a value of type 'NilLiteralConvertible' to a value of type 'AVAudioPlayer'
这意味着您的变量 audioplayer
不是可选的,因此不能设置为 nil
。
要么将其设为可选,然后将其与 try?
(注意 ?
) 一起使用,而不使用 do catch
,或者不要尝试如果您想在 do catch
.
try
,请将其设置为 nil