Мой 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 и позиционные параметры, и почти все. Я хочу, чтобы музыка снова играла правильно, когда я возвращаюсь к своей первой сцене.

0 ответов

Другие вопросы по тегам