5
웹 오디오 API를 사용하여 사용자 지정 패닝 컨트롤을 만들려고하지만 채널 스플리터와 병합 노드를 사용하여 올바른 채널에서 소리가 나지 않습니다.웹 오디오 : 오른쪽 채널에서 아무 소리도 나지 않음
var context = new webkitAudioContext(),
destination = context.destination,
osc = context.createOscillator(),
gainL = context.createGainNode(),
gainR = context.createGainNode(),
splitter = context.createChannelSplitter(2),
merger = context.createChannelMerger(2);
osc.frequency.value = 500;
osc.connect(splitter);
splitter.connect(gainL, 0);
splitter.connect(gainR, 1);
gainL.connect(merger, 0, 0);
gainR.connect(merger, 0, 1);
osc.noteOn(0);
gainL.gain.value = 0.1;
gainR.gain.value = 0.5;
osc.noteOff(2);
merger.connect(destination);
내가 여기에 분명한 것을 놓치고 있습니까? 위 코드의 JSB 미리보기는 다음과 같습니다. http://jsbin.com/ayijoy/1/
Chrome v24.0.1312.57을 사용하고 있습니다.
좋은 솔루션입니다. 감사합니다. 그것은 결국 명백한 무엇인가 놓치고있는 것이 나온다. – SquareFeet
그렇지만 모노 소스를 스테레오 대상에 연결할 때 모노 -> 스테레오에서 업 - 믹싱이 자동으로 수행되었다고 생각했습니다. 여기의 스펙은 분명하지 않습니다. http://www.w3.org/TR/webaudio/#UpMix 오실레이터를 대상 노드에 직접 연결하는 것이 좋습니다. 사운드는 L 및 R 채널에서 모두 재생되며 자동 업 믹스; 나는 내 질문의 시나리오에서 같은 일이 일어날 것이라고 생각했을 것이다 ... – SquareFeet
일반적으로 자동으로 upmixing이 발생한다. 그러나, 분배기 노드는 직접 신호를 혼란시키기 때문에, 그렇지 않습니다. 사양에서 : '[AudioSplitterNode]에는 단일 입력과 입력 오디오 스트림의 채널 수와 동일한 "활성"출력 수가 있습니다. ... "활성"이 아닌 출력은 아무 소리도 출력하지 않으며 일반적으로 아무 것도 연결하지 않습니다. ' – cwilso