ฉันพยายามเล่นเสียงในทุกด้าน ก่อนอื่นฉันลองด้วยการกระทำของ SpriteKit:
sprite.runAction(SKAction.playSoundFileNamed("explosion.mp3", waitForCompletion: false))
ฉันยังพยายามแยกโค้ดนี้ออกเป็นสองส่วน: ในวิธี init ฉันเริ่มต้นการดำเนินการเพื่อดำเนินการในภายหลัง แม้ว่าฉันจะเพิ่งเริ่มต้น SKAction แอปก็ขัดข้อง:
self.soundAction = SKAction.playSoundFileNamed("explosion.mp3", waitForCompletion: true)
ฉันได้ลองใช้ AVFoundation แล้ว รหัสนี้อยู่ในวิธีการ init:
let explosionURL = NSBundle.mainBundle().URLForResource("explosion", withExtension: "mp3")
var error:NSError?
let data = NSData(contentsOfURL: explosionURL!)
explosionSoundPlayer = AVAudioPlayer(data: data, fileTypeHint: AVFileTypeMPEGLayer3, error: &error)
if explosionSoundPlayer != nil {
explosionSoundPlayer?.prepareToPlay()
} else {
println(error?.localizedDescription)
}
ฉันต้องใช้วัตถุ NSData เพราะมันล้มเหลวด้วย URL วิธีนี้ก็ล้มเหลวเช่นกัน แต่อย่างน้อยก็ให้คำอธิบายข้อผิดพลาดที่มีความหมายมากขึ้นแก่ฉัน:
ทางเลือก ("การดำเนินการไม่เสร็จสมบูรณ์ (ข้อผิดพลาด OSStatus -39.)")