gpt4 book ai didi

javascript - Web 音频 API 中的 ChannelMergerNode 不合并 channel

转载 作者:行者123 更新时间:2023-11-29 15:37:46 24 4
gpt4 key购买 nike

我正在尝试使用网络音频 API 创建一个音频流,其中左右声道由不同的振荡器生成。左 channel 的输出是正确的,但右 channel 是 0。根据规范,我看不出我做错了什么。

在 Chrome 开发者中测试。

代码:

var context = new AudioContext();
var l_osc = context.createOscillator();
l_osc.type = "sine";
l_osc.frequency.value = 100;
var r_osc = context.createOscillator();
r_osc.type = "sawtooth";
r_osc.frequency.value = 100;
// Combine the left and right channels.
var merger = context.createChannelMerger(2);
merger.channelCountMode = "explicit";
merger.channelInterpretation = "discrete";
l_osc.connect(merger, 0, 0);
r_osc.connect(merger, 0, 1);
var dest_stream = context.createMediaStreamDestination();
merger.connect(dest_stream);
// Dump the generated waveform to a MediaStream output.
l_osc.start();
r_osc.start();
var track = dest_stream.stream.getAudioTracks()[0];
var plugin = document.getElementById('plugin');
plugin.postMessage(track);

最佳答案

channelInterpretation 意味着合并节点会将立体声振荡器连接分别混合到两个 channel - 但是因为你有一个显式的 channelCountMode,它会堆叠每个连接两个 channel 以获得四个 channel 并且(因为它是显式的)只是删除前两个 channel 。不幸的是,后两个 channel 是来自第二个输入的两个 channel - 因此它丢失了来自第二个连接的所有 channel 。

一般来说,您不需要弄乱 channelCount 解释的东西,它会为立体声做正确的事情。

关于javascript - Web 音频 API 中的 ChannelMergerNode 不合并 channel ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com