簡體   English   中英

如何使用Swift初始化AVAudioPlayer

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM