Saya mencoba memutar suara dengan segala cara: pertama saya mencoba dengan tindakan SpriteKit:
sprite.runAction(SKAction.playSoundFileNamed("explosion.mp3", waitForCompletion: false))
Saya juga mencoba membagi kode ini menjadi dua bagian: dalam metode init saya menginisialisasi tindakan, untuk dieksekusi nanti. Namun meskipun saya baru saja menginisialisasi SKAction, aplikasinya mogok:
self.soundAction = SKAction.playSoundFileNamed("explosion.mp3", waitForCompletion: true)
Saya juga sudah mencoba dengan AVFoundation. Kode ini ada di dalam metode 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)
}
Saya harus menggunakan objek NSData karena gagal dengan URL. Cara ini gagal juga, tapi setidaknya ini memberi saya deskripsi kesalahan yang lebih bermakna:
Opsional("Operasi tidak dapat diselesaikan. (Kesalahan OSSstatus -39.)")