我试图同时播放声音,但播放器只是在没有完成的情况下剪切声音并开始播放新的声音,我希望它完成而不是每次新声音开始时都剪切。
我现在有这个:
let dropSound = NSURL(fileURLWithPath:NSBundle.mainbundle().
pathForResource("drop", ofType: "mp3")!)
var audioPlayer = AVAudioPlayer()
每次我想播放声音时我都会这样做
var error:NSError?
audioPlayer = AVAudioPlayer(ContentsOfUrl: dropSound, error: &error)
audioPlayer.prepareToPlay()
audioPlayer.play()
最佳答案
可能有一种更有效的方法,但您可以对每种声音尝试此方法。我尝试了几种声音,效果很好。如果您不希望声音打断用户正在听的音乐,只需将 AVAdudioSessionCategoryPlayback
更改为 AVAdudioSessionCategoryAmbient
。
var audioPlayer = AVAudioPlayer()
func playSound() {
var dropSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("drop", ofType: "mp3")!)
AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: nil)
AVAudioSession.sharedInstance().setActive(true, error: nil)
var error: NSError?
audioPlayer = AVAudioPlayer(contentsOfURL: dropSound, error: &error)
audioPlayer.prepareToPlay()
}
audioPlayer.play()
关于ios - swift sprite kit - AVAudioPlayer 不能同时播放多个声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26478921/