【发布时间】:2015-09-16 14:56:22
【问题描述】:
AnalyserNodes 与getUserMedia 的MediaStreams 完美配合。但我无法让 Chrome 分析从RTCPeerConnection.onaddstream 获得的MediaStreams。调用 .getByteFrequencyData 创建一个零数组:
pc.onaddstream = function(evt) {
var conn = _conns[user];
conn.audio = $('<audio>', {
src: URL.createObjectURL(evt.stream),
autoplay: true
});
conn.context = Microphone.context();
conn.sourceNode = conn.context.createMediaStreamSource(evt.stream);
conn.analyserNode = conn.context.createAnalyser();
conn.sourceNode.connect(conn.analyserNode);
conn.analyserInterval = setInterval(function() {
var bufferLength = conn.analyserNode.frequencyBinCount;
var dataArray = new Uint8Array(bufferLength);
conn.analyserNode.getByteFrequencyData(dataArray);
console.log(dataArray);
}, 50);
};
将createMediaStreamSource 的参数替换为Microphone.stream(),这是我从getUserMedia 获得的流,用数据填充数组。
我在 Linux 上使用 Chrome 47。
【问题讨论】:
标签: html google-chrome webrtc web-audio-api