我正在使用AVAudioPlayerNode
循环播放缓冲区中的音频文件,并且需要能够在用户单击下一步时切换到下一首曲目,但要在循环结束时切换,而不是在循环结束时立即切换。用户点击下一步
这是我用来开始播放的代码
if loopPlayback == true {
audioPlayer.scheduleBuffer(buffer, at: nil, options: .loops, completionHandler: nil)
audioPlayer.play()
playPauseToggleState()
}
答案 0 :(得分:1)
在AVAudioPlayerNodeBufferOptions.interruptsAtLoop
的{{1}}函数的options
参数中使用AVAudioPlayer
选项。这是一个示例:
scheduleBuffer
此代码行计划将缓冲区永远循环播放。如果已经在播放某些内容,则它会在完成循环迭代后立即中断。否则,将立即开始播放。当然,我假设玩家节点当前正在播放。