1

基本的に、最初のシーンで音楽を再生すると、すべて正常に動作します。シーン 2 に移行すると、音楽が自動的に停止します。しかし、その後、トランジションを元に戻すと、音楽が 0.5 秒間始まり、理由もなく途切れてしまいます。さらに奇妙なことに、物理デバイスをスリープモードにしてからロックを解除した場合にのみ、完全に継続します。

実際のプロジェクトで発生している問題を解決するために、過度に単純化したコードを作成しました。これは私の最初のシーンです。起動時に音楽を再生し、タッチするとシーン 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 に戻る以外に何もありません。ここでは、音楽を再び開始したいと考えています (ただし、0.5 秒後に再生が停止します)。

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 & positional オプションを使わず、ほぼすべてを試しました。最初のシーンに戻ったときに、音楽が再び適切に再生されるようにします。

4

0 に答える 0