2016-11-21 7 views
2

SpriteKit(それらに精通していない人向け)には、シーンを読み込んでアンロードする方法と、シーン間の遷移(ビジュアル)があります。シーン遷移のためのサウンド、吃音はありません

私はシーン間でサウンドを再生しようとしています。

はこれまでのところ、私はこのような、でも音マネージャを使用して、何の音、または音の吃音を作成していないのいずれか試したすべての方法:

import AVFoundation 
import SpriteKit 

open class SoundManager { 

    static let soundStart = SKAction.playSoundFileNamed("ActionBeep_AP1.7", waitForCompletion: true) 


    static var coinSound = NSURL(fileURLWithPath:Bundle.main.path(forResource: "ActionBeep_AP1.7", ofType: "wav")!) 
    static var audioPlayer = AVAudioPlayer() 
    open static func playCoinSound(){ 
     guard let soundToPlay = try? AVAudioPlayer(contentsOf: coinSound as URL) else { 
      fatalError("Failed to initialize the audio player with asset: \(coinSound)") 
     } 
     soundToPlay.prepareToPlay() 
     self.audioPlayer = soundToPlay 
     self.audioPlayer.play() 
    } 


} 

は、誰もがシーン遷移を作る任意の成功がスムーズに実行に聞こえていました?シーンの切り替え中にたくさんのことが起こっていることがわかっています。これはおそらくサウンドエンジンを手助けしていないでしょう。しかし、シーンのトランジション中にはっきりとしたサウンドを演奏する方法がなければならないと考えています。

はい、私は、 "圧縮"と生の状態が異なる.cafと.mp3と.wavファイルを試しています。ファイルタイプではなく、問題のサウンドを再生する方法だと思います。

+0

移行の直前にこれを呼び出していますか?あなたのアプリを起動しようとする前ではなく、あなたのアプリが起動したときにその曲をプリロードしてみてください。このようなものhttp://stackoverflow.com/questions/40296793/cannot-stop-background-music-from-within-game-scenes-swift-3-spritekit/40361443#40361443 – crashoverride777

答えて

1

crashoverride777によると、サウンドマネージャを読み込むときに変更する必要があります。あなたはロード時間を最小限にするために、あなたのdidMoveToView()関数内でスレッドを設定することができ:

DispatchQueue.global(qos: .userInitiated).async { 
    // Load your sound stuff 
} 

を今、あなたはあなたのサウンドファイルは、あなたがそれを必要なときのためにロードされている、遅れのありません。

関連する問題