【发布时间】:2017-01-03 22:24:08
【问题描述】:
我有一堆 webrtc 流在 angularjs 视图中表示,我想可视化哪些流超过了一定的音量阈值,然后我可以一次收听那些流。这可能吗?我发现的所有内容似乎都要求您将流附加到您的音频上下文以计算音量。这会播放流。您可以在不播放流的情况下计算音量吗?我一直在使用 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);
我正在尝试叠加一些视觉指示器以显示不同视频流的声音级别而不播放它们
【问题讨论】:
标签: javascript audio webrtc mediastream