В настоящее время я занимаюсь разработкой приложения с использованием SpriteKit в Xcode (версия 9.4).Еще пару часов назад у меня не было проблем или ошибок в моем коде, и все работало идеально.Я сделал небольшие изменения в коде, но не слишком радикально.В какой-то момент в прошлом часе большинство моих аудиофайлов перестали воспроизводиться.
Некоторый код, в котором создаются bulletSound и backingAudioMain, а также функции, которые их используют.
let bulletSound = SKAction.playSoundFileNamed("bulletSound.wav", waitForCompletion: false)
var backingAudioMain = AVAudioPlayer()
//A function that uses bulletSound
func fireBullet() {
let bullet = SKSpriteNode(imageNamed: "bullet")
bullet.name = "Bullet" //Bullet is a reference name for the object bullet
bullet.setScale(1.1)
bullet.position = player.position
bullet.zPosition = 1
bullet.physicsBody = SKPhysicsBody(rectangleOf: bullet.size)
bullet.physicsBody!.affectedByGravity = false
bullet.physicsBody!.categoryBitMask = physicsCategories.Bullet
bullet.physicsBody!.collisionBitMask = physicsCategories.None
bullet.physicsBody!.contactTestBitMask = physicsCategories.EnemyFighter //we will be told when a bullet hits the enemy
self.addChild(bullet)
let moveBullet = SKAction.moveTo(y: self.size.height + bullet.size.height, duration: 0.8) //Bullet moves to the top of the scene height plus the height of the bullet so it goes just off screen
let deleteBullet = SKAction.removeFromParent() //once the bullet is just off screen, the bullet is deleted to preserve memory
let bulletSequence = SKAction.sequence([bulletSound, moveBullet, deleteBullet]) //Sequences off the two actions above
bullet.run(bulletSequence)}
//A function that uses backingAudioMain
func playMusic(){
let filePath = Bundle.main.path(forResource:"backingAudioMain", ofType: "wav")
let audioURL = URL(fileURLWithPath: filePath!)
do{ backingAudioMain = try AVAudioPlayer(contentsOf: audioURL)}
catch { return print ("Cannot find the audio.")}
backingAudioMain.numberOfLoops = -1
backingAudioMain.play()}
Вот некоторые ошибки отладчика при попытке использовать функцию fireBullet.
2018-09-27 10:34:16.414492-0400 Solo Mission[8410:191101] [aqme] 202: err 1718449215
2018-09-27 10:34:16.426109-0400 Solo Mission[8410:191101] [aqme] 202: err 1718449215
2018-09-27 10:34:19.127161-0400 Solo Mission[8410:190608] AUBase.cpp:832:DispatchSetProperty: ca_require: ValidFormat(inScope, inElement, newDesc) InvalidFormat
2018-09-27 10:34:19.129167-0400 Solo Mission[8410:190608] SKAction: Error loading sound resource: "bulletSound.wav"
2018-09-27 10:34:19.151046-0400 Solo Mission[8410:191101] [aqme] 202: err 1718449215
2018-09-27 10:34:21.597514-0400 Solo Mission[8410:190608] SKAction: Error loading sound resource: "bulletSound.wav"
Я заметил, что воспроизводится только мой файл backingAudioMain, который является AVAudioPlayer.После нескольких часов попыток решить и исследовать проблему я ничего не нашел.Я думаю, что это проблема на стороне XCode, но я не совсем уверен.