Мой mp3 не будет воспроизводиться должным образом на сцене SpriteKit по возвращении, используя SKAudioNode и Swift
В общем, я играю музыку на первой сцене, и все работает отлично. Я перехожу на сцену 2, и музыка автоматически останавливается, чего я и хочу. Но потом я возвращаюсь назад, и музыка начинается на полсекунды... потом просто отключается без причины. Просто чтобы сделать что-то более странное, это снова будет продолжаться идеально, только если я переведу свое физическое устройство в спящий режим, а затем разблокирую его.
Я сделал слишком упрощенный код, чтобы сразу перейти к проблеме, с которой я столкнулся в своем реальном проекте. Вот моя первая сцена, которая просто воспроизводит музыку при запуске и переходит в сцену 2 при касании:
import SpriteKit
class GameScene: SKScene
{
override func didMoveToView(view: SKView)
{
let backgroundMusic = SKAudioNode(fileNamed: "WhatIsLove.mp3")
backgroundMusic.autoplayLooped = true
backgroundMusic.positional = false
addChild(backgroundMusic)
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
let transition = SKTransition.revealWithDirection(.Down, duration: 1.0)
let nextScene = SceneTwo(size: scene!.size)
nextScene.scaleMode = .AspectFill
nextScene.backgroundColor = UIColor.blueColor()
scene?.view?.presentScene(nextScene, transition: transition)
}
}
А вот сцена 2, где музыка автоматически останавливается перед переходом. Ничего здесь, кроме перехода обратно к сцене 1 при касании, где я хочу, чтобы музыка снова запускалась (но она перестает воспроизводиться через полсекунды):
import SpriteKit
class SceneTwo: SKScene
{
override func didMoveToView(view: SKView)
{
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?)
{
let transition = SKTransition.revealWithDirection(.Down, duration: 1.0)
let nextScene = GameScene(size: scene!.size)
nextScene.scaleMode = .AspectFill
nextScene.backgroundColor = UIColor.greenColor()
scene?.view?.presentScene(nextScene, transition: transition)
}
}
Понятия не имею, почему это происходит. Я пробовал несколько комбинаций со SKAudioNode и другими способами объявить переменные и реализовать их. Я пытался не использовать autoplayLooped и позиционные параметры, и почти все. Я хочу, чтобы музыка снова играла правильно, когда я возвращаюсь к своей первой сцене.