[英]How to initialize AVAudioPlayer using Swift
我正在Xcode 6.1中使用Swift和SpriteKit創建游戲,但無法獲取AVAudioPlayer進行初始化。 我的菜單中有一個SKScene,我想在名為“ menu.mp3”的“聲音”文件夾中運行音樂。 但是,每次我運行游戲時它都會崩潰。 我的代碼如下:
let filePath:NSURL = NSURL(fileURLWithPath: "menu.mp3")!
var er:NSError?
let audioPlayer:AVAudioPlayer = AVAudioPlayer(contentsOfURL: filePath, error: &er)
if (er != nil) {
} else {
audioPlayer.play()
}
我在super.init調用之后將其放在初始化程序中。 我得到的錯誤如下:
fatal error: unexpectedly found nil while unwrapping an Optional value
我已經嘗試了很多修復程序,但是我無法弄清楚出了什么問題。 我已經添加了AVFoundation框架並將其導入到此場景,但是它仍然崩潰。 我的filePath出了點問題,導致我的audioPlayer無法初始化嗎? 我試圖切換到其他方式並使不同的零件成為可選零件,但是我無法使其正常工作。 謝謝!
let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as NSURL
func preparePlayer(name:String){
var error:NSError?
let fileUrl = documentsUrl.URLByAppendingPathComponent(name)
// or
// let fileUrl = NSBundle.mainBundle().bundleURL.URLByAppendingPathComponent(name)
let audioPlayer = AVAudioPlayer(contentsOfURL: fileUrl, error: &error)
if error == nil {
audioPlayer.play()
}
}
override func viewDidLoad() {
super.viewDidLoad()
preparePlayer("menu.mp3")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.