【问题标题】:SpriteKit overlaying audio fileSpriteKit 覆盖音频文件
【发布时间】:2015-10-15 14:10:48
【问题描述】:

我正在尝试为我的游戏设置背景铃声,该铃声应该从 Home 场景开始,然后在其他场景中连续循环播放。

这就是我的班级的样子:

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()
}

由于我将播放方法放在家庭场景中,每次加载时它都会开始播放新曲目,将一个曲目覆盖在另一个曲目上,导致一团糟。如何预防?

【问题讨论】:

    标签: sprite-kit avaudioplayer


    【解决方案1】:

    让你的音频播放器类成为一个单例,或者让 AppDelegate 照顾它。这也将允许您随时从应用中的任何场景/屏幕控制音乐。

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

    【讨论】:

    • 谢谢!我已经用 audioPlayer.playing 布尔值和单例类解决了这个问题
    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多