如何暂停离线渲染?

How to pause offline rendering?

OfflineContext.suspend 停止 OfflineContext.currentTime 的进程,但它在渲染 (OfflineContext.startRendering) 时有什么影响?我想做的是启动渲染过程,暂停它,做一些其他任务并在其他任务完成后恢复它。渲染过程暂停时,临近的AudioBuffer应该不会变大,意思是我把AudioBuffer导出成wav文件播放的时候,应该没有暂停对应的静音由渲染过程拍摄。

我在渲染时尝试了 OfflineContext.suspend,它似乎确实在生成的 wav 文件中添加了一些静音,但也许我做错了什么。

  1. 如何暂停渲染过程?
  2. OfflineContext.suspend 有什么用?

suspend 旨在使离线上下文在调用 startRendering() 之前在受控时间停止。您可以在开始渲染后调用 suspend(),但这不是很精确,特别是因为渲染可能比实时快。

此外,您无法在渲染期间访问 AudioBuffer。如果要在渲染时捕获音频,请使用 ScriptProcessorNodeAudioWorkletNode 来保存音频数据。