Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html WebAudio-独立的音频频道_Html_Html5 Canvas_Web Audio Api - Fatal编程技术网

Html WebAudio-独立的音频频道

Html WebAudio-独立的音频频道,html,html5-canvas,web-audio-api,Html,Html5 Canvas,Web Audio Api,我有两个独立的音频文件,将通过WebAudio API播放 其中一个包含背景音乐,并且将始终打开。 另一个包含语音,我的图形将对声音的音调做出反应。我有一段工作代码,它使用WebAudio.context、AnalyzerNode和dynamicNode来计算当前播放的声音文件的音高 function init() { this.context = ((Object)(createjs.WebAudioPlugin)).context; this.analyserNode

我有两个独立的音频文件,将通过WebAudio API播放

其中一个包含背景音乐,并且将始终打开。 另一个包含语音,我的图形将对声音的音调做出反应。我有一段工作代码,它使用WebAudio.context、AnalyzerNode和dynamicNode来计算当前播放的声音文件的音高

function init() {    
    this.context = ((Object)(createjs.WebAudioPlugin)).context;
    this.analyserNode = this.context.createAnalyser();
    this.analyserNode.fftSize = 32;
    this.analyserNode.smoothingTimeConstant = 0.7;
    this.analyserNode.connect(this.context.destination);

    this.dynamicsNode = ((Object)(createjs.WebAudioPlugin)).dynamicsCompressorNode;
    this.dynamicsNode.disconnect();
    this.dynamicsNode.connect(this.analyserNode);

    this.freqFloatData = new Float32Array(this.analyserNode.frequencyBinCount);
    this.freqByteData = new Uint8Array(this.analyserNode.frequencyBinCount);
}

function onUpdate() {
    this.analyserNode.getByteFrequencyData(this.freqByteData);
    // ---- do stuff with this.freqByteData[0]; ---- \\
}
但是,当我同时播放背景音乐和语音文件时,我只能同时检索两种声音的音调


在播放多个声音文件时,是否可以通过WebAudio API从单个声音文件中获取音高?

如果您的意思是“我可以只对音乐曲目应用均衡,并且不影响语音”,答案是肯定的-均衡(和其他过滤)是一种内联效果,它不需要在全球范围内应用。如果你的意思是“我有语音和音乐混合的源材料,我能把它们分开吗?”那么肯是对的,这是一个更困难的挑战。

我认为这个问题太广泛了,所以这是一个复杂的领域,结果将取决于许多因素。如果您的语音是单声道和音乐立体声的,您可以尝试(多步骤),这具有相对较低的开销。如何创建源节点并将其连接到目标节点?这会澄清问题。但是克里斯,他们可以在CSI上做,所以?哈哈哈!好吧,那一定是真的。嘿,很抱歉我写了这么一个蹩脚的问题,但你似乎完全误解了我的初衷!我更新了我的问题,以反映我真正的问题。抱歉造成混淆。啊,这更清楚了-但是您没有显示您连接到DynamicCompressorNode的内容(即,您如何播放两首曲目)。如果您将一个连接到DynamicCompressorNode,另一个直接连接到context.destination,它应该可以工作。