Tôi đang cố gắng tạo điều khiển xoay vòng tùy chỉnh bằng API âm thanh trên web nhưng tôi không thể nhận được bất kỳ âm thanh nào thoát ra khỏi kênh phù hợp bằng cách sử dụng bộ tách kênh và nút hợp nhất:Âm thanh trên web: Không có âm thanh nào trong kênh bên phải
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);
Tôi có thiếu thứ gì đó hiển nhiên ở đây không? Có bản xem trước JSBin về mã ở trên tại đây: http://jsbin.com/ayijoy/1/
Tôi đang chạy Chrome v24.0.1312.57, chỉ trong trường hợp sử dụng bất kỳ.
Đó là một giải pháp tốt đẹp, cảm ơn; hóa ra tôi đã bỏ lỡ điều gì đó hiển nhiên sau tất cả. – SquareFeet
Điều đó nói rằng, mặc dù, tôi nghĩ rằng trộn lên từ mono -> stereo được tự động thực hiện khi kết nối một nguồn mono đến một điểm đến âm thanh nổi. Thông số ở đây không rõ ràng: http://www.w3.org/TR/webaudio/#UpMix Cân nhắc việc kết nối bộ dao động trực tiếp với nút đích: âm thanh sẽ phát trong cả hai kênh L và R, gợi ý tự động trộn; Tôi đã nghĩ như vậy sẽ xảy ra trong kịch bản câu hỏi của tôi ... – SquareFeet
Nói chung, upmixing không xảy ra tự động. Tuy nhiên, nút Splitter là cho bạn để gây rối với tín hiệu trực tiếp, do đó, nó không. Từ thông số: '[AudioSplitterNode] có một đầu vào duy nhất và một số đầu ra "hoạt động" bằng với số kênh trong luồng âm thanh đầu vào. ... Bất kỳ đầu ra nào không "hoạt động" sẽ tạo ra sự im lặng và thường sẽ không được kết nối với bất kỳ thứ gì. ' – cwilso