【问题标题】:AVAudioPlayerNode scheduleBuffer interruptsAtLoop is interrupting immediatelyAVAudioPlayerNode scheduleBuffer interruptsAtLoop 正在立即中断
【发布时间】:2017-07-03 16:23:05
【问题描述】:

我有一个 AVAudioPlayerNode (playerNode) 和两个 AVAudioPCMBuffer (buffer1, buffer2) 设置。

我还有 10 秒的 AVAudioTime (futureTime) 设置。

var options: AVAudioPlayerNodeBufferOptions = []
options.insert(.interruptsAtLoop)
options.insert(.loops)

playerNode.scheduleBuffer(buffer1!,
    at: futureTime,
    options: options,
    completionHandler:nil)

上面等待10秒后播放buffer1,一直循环播放。

调用如下代码:

playerNode.scheduleBuffer(buffer2!,
    at: futureTime,
    options: options,
    completionHandler:nil)

导致缓冲区 1 停止播放,缓冲区 2 立即启动,而不是等待至少 10 秒,然后在缓冲区 1 的下一个循环中中断。

任何想法我做错了什么导致立即中断而不是按照指示在循环中中断?

【问题讨论】:

    标签: ios swift avaudioengine avaudioplayernode


    【解决方案1】:

    我没有直接使用 AVAudioTime 类,但从 API 来看,它似乎代表了一个准确的时刻,而不是一个相对的时刻。如果这是真的,那么通过使用相同的“futureTime”两次,您将调度缓冲区 2 与缓冲区 1 在同一时间启动。也许您可以在第一个时间后 10 秒计算 futureTime2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-31
      • 2018-03-12
      • 1970-01-01
      • 2020-02-07
      • 1970-01-01
      相关资源
      最近更新 更多