Ich versuche, einen ScriptProcessorNode mit zwei Eingangs- und einem Ausgangskanal zu implementieren.Wie kann ich zwei Eingabekanäle mit dem ScriptProcessorNode verbinden? (Web Audio API, JavaScript)
var source = new Array(2);
source[0] = context.createBufferSource();
source[0].buffer = buffer[0];
source[1] = context.createBufferSource();
source[1].buffer = buffer[1];
var test = context.createScriptProcessor(4096, 2, 1);
source[0].connect(test, 0, 0);
source[1].connect(test, 0, 1);
test.connect(context.destination);
source[0].start();
source[1].start();
Wenn ich diesen Code in Google Chrome sowie in Mozilla Firefox ausführen, bekomme ich den folgenden Fehler ausgelöst. Es sagt mir, dass mein test
Knoten nur einen Eingangskanal hat.
Uncaught IndexSizeError: Failed to execute 'connect' on 'AudioNode': input index (1) exceeds number of inputs (1).
Wenn ich die Anzahl der Eingangskanäle des ScriptProcessorNode test
I Eingangskanäle erhalten zwei Konsole aus.
test.onaudioprocess = function(evt){
console.log("number of input channels: " + evt.inputBuffer.numberOfChannels);
}
Dennoch zwei Knoten an den Eingang des test
Knoten verbinden, wie ich es tun nicht funktioniert. Ich möchte einen Vocoder innerhalb des ScriptProcessorNode programmieren. Wie kann ich einen ScriptProcessorNode mit zwei Eingangs- und einem Ausgangskanal erstellen und zwei Quellknoten als Eingangskanal und den context.destination
als Ausgangskanal verbinden?
https://developer.mozilla.org/en-US/docs/Web/API/ChannelMergerNode Haben Sie das berücksichtigt? –
Ich brauche beide Eingangskanäle in der Funktion, die durch einen Onaudioprozess ausgelöst wird, um sie auf eine bestimmte Art und Weise miteinander zu verbinden. Ich könnte zwei ScriptProcessorNodes erstellen und sie später zusammenführen, aber ich weiß nicht, wie zwei ScriptProcessorNodes parallel ausgeführt werden. – thiloilg
Was ich verstehe Sie zu sagen ist, dass Sie beide Kanäle getrennt verarbeiten möchten? In diesem Fall möchten Sie wahrscheinlich https://developer.mozilla.org/en-US/docs/Web/API/ChannelSplitterNode und zwei verschiedene 'ScriptProcessorNode's, um jeden Mono-Audio-Stream zu verarbeiten. –