WebAudio:克隆源 AudioNode
WebAudio: cloning a source AudioNode
为了支持和弦模式,我需要克隆源音频节点。这样我就可以为每个音符分配一个单独的节点,它将与其他音符一起播放。
我想以通用方式执行此操作,以便无论使用什么源节点,甚至是自定义源节点,它们都可以被克隆。我已经检查了规范,但没有发现任何关于克隆或复制音频节点的参考。
因为这些对象通常有原生部分,我想使用标准 JavaScript 克隆节点对象是行不通的。
你有什么推荐?也许这是规范中缺少的功能?
确实,您必须手动复制所需的节点。但是,考虑到您(可能)想要复制的内容,我认为这是一项非常小的工作。
例如,取一个AudioBufferSourceNode。要复制其中之一,您真正需要做的就是创建一个新的 AudioBufferSourceNode,然后分配与您正在复制的缓冲区相同的缓冲区。既然你在做复音,我会继续猜测你想要在新节点上有不同的频率和失谐值,所以可能不应该被复制。此外,如果要循环缓冲区,则必须复制循环属性(loop、loopStart、loopEnd)。
同样,如果您将振荡器节点作为源处理,您可能只想复制振荡器类型,因为频率和失谐很可能也不应该相同。
所以你知道我要用这个做什么 - 你应该能够建立一个你自己的小库来复制你感兴趣的节点。我怀疑本地 API 方法复制一个节点将永远成为规范的一部分(但这只是我个人的猜测,所以如果你认为这是个好主意,你可以在 https://github.com/webaudio/web-audio-api/issues 提出功能请求)。
为了支持和弦模式,我需要克隆源音频节点。这样我就可以为每个音符分配一个单独的节点,它将与其他音符一起播放。
我想以通用方式执行此操作,以便无论使用什么源节点,甚至是自定义源节点,它们都可以被克隆。我已经检查了规范,但没有发现任何关于克隆或复制音频节点的参考。
因为这些对象通常有原生部分,我想使用标准 JavaScript 克隆节点对象是行不通的。
你有什么推荐?也许这是规范中缺少的功能?
确实,您必须手动复制所需的节点。但是,考虑到您(可能)想要复制的内容,我认为这是一项非常小的工作。
例如,取一个AudioBufferSourceNode。要复制其中之一,您真正需要做的就是创建一个新的 AudioBufferSourceNode,然后分配与您正在复制的缓冲区相同的缓冲区。既然你在做复音,我会继续猜测你想要在新节点上有不同的频率和失谐值,所以可能不应该被复制。此外,如果要循环缓冲区,则必须复制循环属性(loop、loopStart、loopEnd)。
同样,如果您将振荡器节点作为源处理,您可能只想复制振荡器类型,因为频率和失谐很可能也不应该相同。
所以你知道我要用这个做什么 - 你应该能够建立一个你自己的小库来复制你感兴趣的节点。我怀疑本地 API 方法复制一个节点将永远成为规范的一部分(但这只是我个人的猜测,所以如果你认为这是个好主意,你可以在 https://github.com/webaudio/web-audio-api/issues 提出功能请求)。