Я изо всех сил пытался решить простую задачу: воспроизвести аудиофайл в фоновом режиме, когда загружается сцена SpriteKit.
Я скопировал аудиофайл с именем «Test Song.wav» в свой проект, и он также был обнаружен в моих ресурсах, когда я просматривал «Этапы сборки» > «Копировать ресурсы пакета» (что было тем, что этот пост предлагается проверить)
Мой код скомпилировался просто отлично, и мой кольцевой/бесшумный переключатель был правильно повернут в положение звонка, но звук не воспроизводился при загрузке сцены.
я использую
- Бета-версия Xcode версии 8.0
- iPhone 6S Plus под управлением iOS 10 Beta 1
Вот мой сломанный код:
import AVFoundation
class GameScene: SKScene {
override func didMove(to view: SKView) {
if let path = Bundle.main().pathForResource("Test Song", ofType: "wav") {
let filePath = NSURL(fileURLWithPath:path)
let songPlayer = try! AVAudioPlayer.init(contentsOf: filePath as URL)
songPlayer.numberOfLoops = 0
songPlayer.prepareToPlay()
songPlayer.play()
}
}
}
Примечание. Я узнал, что в Swift 3.0 метод init() AVAudioPlayer больше не принимает параметр NSError, поэтому этот код НЕ компилируется:
var error:NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error)