2

我有一堆在 angularjs 视图中表示的 webrtc 流,我想可视化哪些流超过了某个音量阈值,然后我可以一次收听那些流。这可能吗?我发现的所有内容似乎都要求您将流附加到您的音频上下文以计算音量。这会播放流。你能在不播放流的情况下计算音量吗?我一直在使用 hark.js 进行音量阈值检测。

我的流来自第 3 部分 rtc 库,但最终我有一堆 webrtc 流,并且想一次收听一个流,同时可视化哪些流在制造噪音。大多数这样的例子似乎在广播公司方面都有这种逻辑。

hark 代码几乎执行以下操作:

-开始

    var audioContextType = window.AudioContext || window.webkitAudioContext;
    var audioContext = new audioContextType();
    var analyser = audioContext.createAnalyser();
    analyser.fftSize = 512;
    analyser.smoothingTimeConstant = 0.1;
    var node = audioContext.createMediaStreamSource(stream);
    node.connect(analyser);//plays stream

-环形

    var fftBins = new Float32Array(analyser.fftSize);
    analyser.getFloatFrequencyData(fftBins);
    //check fftBins for volume data

- 我也从icelink、3rd 方webrtc 库、对象中获取流。视图中的视频集合是从一堆像这样的流中创建的

    var remoteStream = fm.icelink.webrtc.linkExtensions.getRemoteStream(link);
    var videoObject = angular.element('<video></video>');
    videoObject.attr('src', window.URL.createObjectURL(remoteStream.getBackingStream()));
    videoObject.attr('autoplay', 'true');
    resolve(videoObject);

我正在尝试覆盖一些视觉指示器以显示不同视频流的声级而不播放它们

4

1 回答 1

1

您不必“播放”流即可将其连接到AudioContext. 只是connect分析,并省略node.connect(audioCtx.destination)放弃默认扬声器输出。

于 2016-12-21T18:08:43.757 回答