SpriteKit覆盖音频文件

吉安迪奥·乔丹奴

我正在尝试为我的游戏设置背景铃声,该铃声应该从主场景开始,然后即使在其他场景下也不断循环播放。

这是我的班级样子:

class AudioPlayer: AVAudioPlayer {
var audioPlayer: AVAudioPlayer? = AVAudioPlayer()
let ost = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("bkg", ofType: "mp3")!)

func playOst() {
        do {
            audioPlayer = try AVAudioPlayer(contentsOfURL: ost)
        }
        catch {
            audioPlayer = nil
        }
        audioPlayer?.prepareToPlay()
        audioPlayer!.play()
        audioPlayer!.numberOfLoops = -1
}

func stopOst() {
    audioPlayer!.stop()
}

由于我将播放方法放在家庭场景中,因此每次加载时它将开始播放新的曲目,将一个曲目叠加在另一曲目上会导致混乱。我该如何预防?

美丽新

使您的音频播放器类成为单例,或让AppDelegate照管它。这也使您可以随时控制应用程序中任何场景/屏幕上的音乐。

每当加载主屏幕时,请检查音乐是否已经在播放,如果没有,请致电playOst,否则什么也不做。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章