Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome Webrtc Web音频向传入流添加延迟节点_Google Chrome_Webrtc_Signal Processing_Html5 Audio_Web Audio Api - Fatal编程技术网

Google chrome Webrtc Web音频向传入流添加延迟节点

Google chrome Webrtc Web音频向传入流添加延迟节点,google-chrome,webrtc,signal-processing,html5-audio,web-audio-api,Google Chrome,Webrtc,Signal Processing,Html5 Audio,Web Audio Api,我正在使用Google Chrome中的Web audio API为传入的纯音频WebRTC流添加延迟 connectionRecv.onaddstream=(事件)=>{ const recvAudio=新音频(); recvAudio.srcObject=event.stream.clone(); recvAudio.autoplay=true; recvAudio.onloadedmetadata=()=>{ //控制是否也应播放原始流 //如果为true,则会导致WebRTC getSt

我正在使用Google Chrome中的Web audio API为传入的纯音频WebRTC流添加延迟

connectionRecv.onaddstream=(事件)=>{
const recvAudio=新音频();
recvAudio.srcObject=event.stream.clone();
recvAudio.autoplay=true;
recvAudio.onloadedmetadata=()=>{
//控制是否也应播放原始流
//如果为true,则会导致WebRTC getStats()接收曲目音频级别==0
recvAudio.muted=muteOriginalStream;
const recvAudioSource=audioContext.createMediaStreamSource(recvAudio.srcObject作为MediaStream);
const delayNode=audioContext.createDelay();
delayNode.delayTime.value=1;//延迟1秒
recvAudioSource.connect(延迟节点);
delayNode.connect(audioContext.destination);
};
};
这是一个小问题。我想静音原始流,这样我就不会听到双重音频(原始流和延迟流)。但是,当我将原始流静音以便只听到延迟流时,
rtpeerconnection
getStats()
为接收曲目
audioLevel
返回0

我已经尝试了许多不同的方法围绕接收到的流进行管道传输,因此我只听到延迟版本,但要么根本听不到任何音频,要么
getStats()
audioLevel
为0。我正在寻找一种实现,它可以保留WebRTC
getStats()
中的非零
audioLevel
,而只有延迟的流通过音频输出设备播放。简言之:

如何仅播放延迟流而不将WebRTC
getStats()归零
receive track
audioLevel

我在stackblitz上创建了一个问题的最低复制版本,其中我创建了一个环回WebRTC连接,发送方和接收方是同一个浏览器。检查控制台日志以查看从
getStats()
返回的接收曲目
audioLevel


注意:如果您使用我的stackblitz,我建议您使用耳机以避免反馈循环。

我没有解决您所述问题的方法,但作为获取级别信息的解决方法,您可以将音频添加到音频上下文中,并使用它提供的时域或频域数据自己计算音频级别。

谢谢您,凯文,这就是我们最终要做的。我们意识到stats audioLevel似乎是实验性的,在其他浏览器中不受支持。