我写了一个小类,使用AVFoundation使用数组播放音频。每次调用'playAudio'时,基本上都会将一个新元素附加到数组中。这允许多个声音播放而不会相互切断。此外,为了使数组的大小不会无限增加,我将其设置为在填充数组中的5个插槽后循环回索引0。现在一切都运行得很好但是在'audioPlayer'被多次调用后,音频突然停止,我开始在Catch部分得到'Error',但我的应用程序继续正常运行,好像它刚被静音一样。谁能告诉我为什么会这样?
var audioIndexA = 0
公共类AudioPlayer:NSObject {
var playerA = [AVAudioPlayer]()
func playAudio(audioFile audioFile: String){
do{
let path = NSBundle.mainBundle().pathForResource(audioFile, ofType:"wav")
let fileURL = NSURL(fileURLWithPath: path!)
playerA.insert(try AVAudioPlayer(contentsOfURL: fileURL, fileTypeHint: nil), atIndex: audioIndexA)
playerA[audioIndexA].prepareToPlay()
if audioIndexA < 5{
playerA[audioIndexA].play()
audioIndexA++
} else{
playerA[audioIndexA].play()
audioIndexA = 0
}
} catch{
print("Error")
}
}
}