检测AVAudioPlayer播放结束

4

我有几个短的 .mp3 声音文件,它们被存储在数组中,我想连续播放它们。有没有办法检测 AVAudioPlayer 何时停止播放,以便我可以调用完成处理程序并播放下一个声音?我知道有一个代理方法可以做到这一点,但我正在使用 Playground 和 SKScene。


1个回答

5

你好@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,则可以查阅苹果官方文档或其他在线教程。
希望这能对您有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接