我可以在不重新启动音频流的情况下添加 and/or 替换双簧管中的音频源吗?

Can i add and/or replace audio sources in oboe without restarting the audio stream?

我需要即时提取音频资产并将它们加载到时间轴中进行播放。

我还需要渲染不同长度的资产文件,但我有一个想法,明天我将尝试进行排序,如果有人有任何提示,那将是很棒的。

我一直在玩 oboe RhythmGame 代码,它是 oboe 样本中最接近我正在尝试的代码做。但是当我尝试即时添加或更改音频源时,它并不高兴。

这是双簧管可以做的事情吗,还是我必须为每组新文件循环打开和关闭音频流?

您所提议的完全可以在不需要重新启动音频流的情况下完成。音频流将只在每次回调时请求 PCM 数据。提供该 PCM 数据是您的应用程序的工作。

在 RhythmGame 示例中,使用 DataSource 对象将压缩音频文件解码到内存中。然后 Player 对象包装此 DataSource 以通过 set 方法控制播放。

如果您需要在时间轴中播放文件中的音频数据,我会创建一个新的时间轴 class,它会从 DataSource 中复制音频数据的相关部分并将它们按顺序放入缓冲区.然后您的音频流可以在每次回调时直接从该缓冲区读取。