Javascript Web音频API,获取两个阵列中左/右通道的getByteTimeDomainData。

Javascript Web音频API,获取两个阵列中左/右通道的getByteTimeDomainData。,javascript,audio,web-audio-api,Javascript,Audio,Web Audio Api,我目前正在尝试使用web音频api创建一个音频可视化,也就是说,我正在尝试从给定的音频源生成李萨如图形 我遇到过这个,但我错过了一些先决条件。如何获取左/右通道的时域数据?目前,我似乎只得到合并的数据 任何帮助或暗示都将不胜感激 $(document).ready(function () { var audioCtx = new (window.AudioContext || window.webkitAudioContext)(); var audioElement = docume

我目前正在尝试使用web音频api创建一个音频可视化,也就是说,我正在尝试从给定的音频源生成李萨如图形

我遇到过这个,但我错过了一些先决条件。如何获取左/右通道的时域数据?目前,我似乎只得到合并的数据

任何帮助或暗示都将不胜感激

$(document).ready(function () {

  var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
  var audioElement = document.getElementById('audioElement');
  var audioSrc = audioCtx.createMediaElementSource(audioElement);
  var analyser = audioCtx.createAnalyser();

  // Bind analyser to media element source.
  audioSrc.connect(analyser);
  audioSrc.connect(audioCtx.destination);

  //var timeDomainData = new Uint8Array(analyser.frequencyBinCount);
  var timeDomainData = new Uint8Array(200);

  // loop and update time domain data array.
  function renderChart() {
     requestAnimationFrame(renderChart);

     // Copy frequency data to timeDomainData array.
     analyser.getByteTimeDomainData(timeDomainData);

     // debugging: print to console
     console.log(timeDomainData);

  }

  // Run the loop
  renderChart();

});

观察结果正确,波形为下混结果。从(我的重点):

将当前下混时域(波形)数据复制到 传递的无符号字节数组。[……]

要解决这个问题,您可以使用通道拆分器(
createChannelSplitter()
)并将每个通道分配给两个单独的analyzer节点


有关
createChannelSplitter()
的更多详细信息,请参见

观察结果正确,波形为下混结果。从(我的重点):

将当前下混时域(波形)数据复制到 传递的无符号字节数组。[……]

要解决这个问题,您可以使用通道拆分器(
createChannelSplitter()
)并将每个通道分配给两个单独的analyzer节点


有关
createChannelSplitter()
的更多详细信息,请参阅

感谢您的回复、提供的链接和解决方案提示,这些确实回答了我的问题。感谢您的回复、提供的链接和解决方案提示,这些确实回答了我的问题。