在AVAudioPlayer

时间:2018-03-17 16:29:07

标签: swift avfoundation avaudioplayer swift-playground

我有几个简短的.mp3声音,我将其存储在阵列中,并希望连续播放。有没有办法检测AVAudioPlayer何时停止播放,以便我可以调用完成处理程序并播放下一个声音?我知道有一个代表,但我正在使用Playground和SKScene。

1 个答案:

答案 0 :(得分:0)

Hellp @ codddeer123,

AVAudioPlayer包含AVAudioPlayerDelegte方法,该方法在完成音频播放时调用。

我已经将它作为我班级的扩展实现,你可以随心所欲。

extension MyViewController: AVAudioPlayerDelegate {

    func audioPlayerDidFinishPlaying(_ player: AVAudioPlayer, successfully flag: Bool) {
        if flag {
            // After successfully finish song playing will stop audio player and remove from memory
            print("Audio player finished playing")
            self.audioPlayer?.stop()
            self.audioPlayer = nil
            // Write code to play next audio.
        }
    }
}

您可以在此处编写代码以播放下一个音频。根据你的问题,我已经发布了这个答案。如果您不了解AVAudioPlayer,请转到Apple官方文档或其他在线教程。

我希望这会对你有所帮助。