我创建了一个AudioBufferSourceNode:var source = audioCtx.createBufferSource();
。接下来,我通过XHR从Soundcloud的轨道加载缓冲区。我可以使所有方法正常运行,并且可以调整大多数属性,例如loop
,buffer
,playbackRate.value
等。它在文档中说detune.value
是另一个可以调整的属性。但是,当我尝试它时,期望它会改变音轨的音高,却什么也没发生。控制台告诉我,source.detune
应该在未定义的时候是未定义的,如果我没记错的话,它是对象。我能够使谐调在振荡器上完美运行,但无法通过XHR加载缓冲区。那么,失谐属性是否仅限于某些类型的AudioBufferSourceNodes(或缓冲区)和振荡器,或者是否有另一种方法可以改变音轨的音高而无需调整playbackRate?
最佳答案
推测您使用的是Chrome稳定版。 Detune是相当新的东西,尚未稳定。它可以在Chrome Canary(和Firefox)中使用。