SpriteKit 覆盖音频文件
SpriteKit overlaying audio file
我正在尝试为我的游戏设置一个背景音乐,它应该从 Home 场景开始,然后即使在其他场景中也不断循环。
这是我的 class 的样子:
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()
}
因为我把play方法放在了home场景中,每次加载它都会开始播放新的曲目,一首曲子叠加在另一首曲子上,导致一团糟。我该如何预防?
让你的音频播放器class成为一个单例,或者让 AppDelegate 来管理它。这也将允许您随时从您的应用程序中的任何 scene/screen 控制音乐。
每当您的主屏幕加载时,检查音乐是否已在播放,如果没有,请调用 playOst,否则什么都不做。
我正在尝试为我的游戏设置一个背景音乐,它应该从 Home 场景开始,然后即使在其他场景中也不断循环。
这是我的 class 的样子:
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()
}
因为我把play方法放在了home场景中,每次加载它都会开始播放新的曲目,一首曲子叠加在另一首曲子上,导致一团糟。我该如何预防?
让你的音频播放器class成为一个单例,或者让 AppDelegate 来管理它。这也将允许您随时从您的应用程序中的任何 scene/screen 控制音乐。
每当您的主屏幕加载时,检查音乐是否已在播放,如果没有,请调用 playOst,否则什么都不做。