我试图同时播放声音,但播放器只是在没有完成声音的情况下剪切声音并开始播放新声音,我希望它完成并且不会在每次新声音开始时剪切。
我现在有这个:
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()
答案 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()