我试图为我的游戏设置一个背景叮当声,它应该从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()
}
因为我将播放方法放在家庭场景中,所以每次加载时它都会开始播放新曲目,将一个曲目叠加到另一个曲目上会导致一个大混乱。我该如何预防?
答案 0 :(得分:0)
让您的音频播放器类成为单身,或让AppDelegate照顾它。这样您还可以随时控制应用中任何场景/屏幕的音乐。
每当主屏幕加载检查音乐是否已播放时,如果没有,请调用playOst,否则不执行任何操作。