如何停止设置为在当前循环结束时无限循环的avaudioplayernode

时间:2019-06-20 21:30:38

标签: swift avaudioplayernode

我正在使用AVAudioPlayerNode循环播放缓冲区中的音频文件,并且需要能够在用户单击下一步时切换到下一首曲目,但要在循环结束时切换,而不是在循环结束时立即切换。用户点击下一步

这是我用来开始播放的代码

if loopPlayback == true {  
    audioPlayer.scheduleBuffer(buffer, at: nil, options: .loops, completionHandler: nil)
    audioPlayer.play()
    playPauseToggleState()  
}

1 个答案:

答案 0 :(得分:1)

AVAudioPlayerNodeBufferOptions.interruptsAtLoop的{​​{1}}函数的options参数中使用AVAudioPlayer选项。这是一个示例:

scheduleBuffer

此代码行计划将缓冲区永远循环播放。如果已经在播放某些内容,则它会在完成循环迭代后立即中断。否则,将立即开始播放。当然,我假设玩家节点当前正在播放。