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