【问题标题】:Using MediaStream from WebRTC with an AnalyserNode将 WebRTC 中的 MediaStream 与 A​​nalyserNode 一起使用
【发布时间】:2015-09-16 14:56:22
【问题描述】:

AnalyserNodes 与getUserMediaMediaStreams 完美配合。但我无法让 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


    【解决方案1】:

    【讨论】:

    • 好的,那么 Firefox 呢?
    • 它有效,但请确保在某处保留对您的 PeerConnection 流的引用,否则我们有一个错误,即垃圾收集得太早。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 2016-05-31
    • 2016-03-30
    • 1970-01-01
    相关资源
    最近更新 更多