SpriteKit 覆盖音频文件
Posted
技术标签:
【中文标题】SpriteKit 覆盖音频文件【英文标题】:SpriteKit overlaying audio file 【发布时间】: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()
由于我将播放方法放在家庭场景中,每次加载时它都会开始播放新曲目,将一个曲目覆盖在另一个曲目上,导致一团糟。如何预防?
【问题讨论】:
【参考方案1】:让你的音频播放器类成为一个单例,或者让 AppDelegate 照顾它。这也将允许您随时从应用中的任何场景/屏幕控制音乐。
每当您的主屏幕加载时,检查音乐是否已经在播放,如果没有,则调用 playOst,否则什么也不做。
【讨论】:
谢谢!我已经用 audioPlayer.playing 布尔值和单例类解决了这个问题以上是关于SpriteKit 覆盖音频文件的主要内容,如果未能解决你的问题,请参考以下文章
如何防止 SceneKit 中的 SpriteKit 覆盖拉伸?