swift sprite kit - AVAudioPlayer不能同时播放多个声音

时间:2014-10-21 04:30:28

标签: ios audio swift sprite avaudioplayer

我试图同时播放声音,但播放器只是在没有完成声音的情况下剪切声音并开始播放新声音,我希望它完成并且不会在每次新声音开始时剪切。

我现在有这个:

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()

1 个答案:

答案 0 :(得分:2)

可能有一种更有效的方法,但你可以尝试每种声音。我用几个声音尝试了它并且它有效。如果您不希望您的声音中断用户可能正在收听的音乐,请将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()