Swift:AVAudioPlayer使用数组突然静音

时间:2015-08-03 10:30:52

标签: arrays swift avaudioplayer

我写了一个小类,使用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")
    }
}

}

0 个答案:

没有答案