【发布时间】:2016-11-21 15:59:12
【问题描述】:
在 SpriteKit(对于那些不熟悉它的人)中,有一种加载和卸载场景的方法,以及它们之间的过渡(视觉)。
我正在尝试在场景之间进行声音播放,因为它们会过渡...不会卡顿。
到目前为止,我尝试过的所有方法要么不发出声音,要么声音断断续续,甚至使用声音管理器,如下所示:
import AVFoundation
import SpriteKit
open class SoundManager {
static let soundStart = SKAction.playSoundFileNamed("ActionBeep_AP1.7", waitForCompletion: true)
static var coinSound = NSURL(fileURLWithPath:Bundle.main.path(forResource: "ActionBeep_AP1.7", ofType: "wav")!)
static var audioPlayer = AVAudioPlayer()
open static func playCoinSound(){
guard let soundToPlay = try? AVAudioPlayer(contentsOf: coinSound as URL) else {
fatalError("Failed to initialize the audio player with asset: \(coinSound)")
}
soundToPlay.prepareToPlay()
self.audioPlayer = soundToPlay
self.audioPlayer.play()
}
}
有人成功地让场景过渡声音流畅运行吗?我意识到在场景过渡期间发生了很多事情,这可能对声音引擎没有帮助。但是认为必须有一种方法可以在场景转换期间播放清晰的声音。
是的,我尝试过使用 .caf、.mp3 和 .wav 文件,它们都具有不同的“压缩”和原始状态。我认为问题在于我播放声音的方式,而不是文件类型。
【问题讨论】:
-
你是在过渡之前调用这个吗?尝试在您的应用启动时预加载歌曲,而不是在您尝试播放之前。像这样stackoverflow.com/questions/40296793/…
标签: swift audio avfoundation skscene