Lỗi ngăn chặn nhận đầu vào micrô trên http://code.google.com/p/chromium/issues/detail?id=112367 cho Chrome Canary hiện đã được khắc phục. Phần này dường như đang hoạt động. Tôi có thể gán đầu vào micrô cho một phần tử âm thanh và nghe kết quả thông qua loa.Trình phân tích API âm thanh trên web Nút không hoạt động với đầu vào micrô
Nhưng tôi muốn kết nối nút phân tích để thực hiện FFT. Nút phân tích hoạt động tốt nếu tôi đặt nguồn âm thanh thành tệp cục bộ. Vấn đề là khi kết nối với dòng âm thanh mic, nút phân tích chỉ trả về giá trị cơ sở như thể nó không có luồng âm thanh nào cả. (Đó là -100 hơn và hơn nữa nếu bạn tò mò.)
Bất cứ ai biết chuyện gì đang xảy ra? Nó chưa được triển khai chưa? Đây có phải là lỗi chrome không? Tôi đang chạy 26.0.1377.0 trên Windows 7 và có cờ getUserMedia được kích hoạt và đang phục vụ thông qua localhost thông qua simpleHTTPServer của python để nó có thể yêu cầu quyền.
Code:
var aCtx = new webkitAudioContext();
var analyser = aCtx.createAnalyser();
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true}, function(stream) {
// audio.src = "stupid.wav"
audio.src = window.URL.createObjectURL(stream);
}, onFailure);
}
$('#audio').on("loadeddata",function(){
source = aCtx.createMediaElementSource(audio);
source.connect(analyser);
analyser.connect(aCtx.destination);
process();
});
lần nữa, nếu tôi đặt audio.src lên phiên bản nhận xét, nó hoạt động, nhưng với microphone nó không phải là. Quy trình chứa:
FFTData = new Float32Array(analyser.frequencyBinCount);
analyser.getFloatFrequencyData(FFTData);
console.log(FFTData[0]);
Tôi cũng đã thử sử dụng createMediaStreamSource và bỏ qua phần tử âm thanh - ví dụ 4 - https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/webrtc-integration.html. Cũng không thành công. :(
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true}, function(stream) {
var microphone = context.createMediaStreamSource(stream);
microphone.connect(analyser);
analyser.connect(aCtx.destination);
process();
}
tôi tưởng tượng nó có thể là có thể viết mediasteam đến một bộ đệm và sau đó sử dụng dsp.js hoặc một cái gì đó để làm FFT, nhưng tôi muốn kiểm tra đầu tiên trước khi tôi đi xuống đường đó.
Bạn đã kiểm tra toàn bộ mảng FFTData chưa? Tôi nhận thấy bạn chỉ cần console.logging yếu tố đầu tiên. AnalyserNode sẽ hoạt động với đầu vào micrô ... –
Chức năng xử lý tiếp tục chuyển nó vào trình hiển thị vải, tất cả các giá trị là -100. Tôi đang kiểm tra những thứ như phạm vi biến và tôi sẽ thử nó trên một mac sớm. Thực sự không biết chuyện gì đang xảy ra. – Newmu