Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Webrtc MediaStreamAudioSourceNode内存泄漏_Webrtc_Web Audio Api_Web Frontend - Fatal编程技术网

Webrtc MediaStreamAudioSourceNode内存泄漏

Webrtc MediaStreamAudioSourceNode内存泄漏,webrtc,web-audio-api,web-frontend,Webrtc,Web Audio Api,Web Frontend,MediaStreamAudioSourceNode在disconnect()和函数demoMemoryLeak()中取消引用后将不会被垃圾收集,这可能会导致内存泄漏 参考: 源(MediaStreamAudioSourceNode)--->at(MediaStreamTrack)--->buffer1(10M阵列缓冲) 是否有正确的方法来释放MediaStreamAudioSourceNode 标题 没有内存泄漏 使用MediaStreamAudioSourceNode的内存泄漏 异步函数

MediaStreamAudioSourceNode
disconnect()
和函数
demoMemoryLeak()
中取消引用后将不会被垃圾收集,这可能会导致内存泄漏

参考: 源(MediaStreamAudioSourceNode)--->at(MediaStreamTrack)--->buffer1(10M阵列缓冲)

是否有正确的方法来释放MediaStreamAudioSourceNode


标题
没有内存泄漏
使用MediaStreamAudioSourceNode的内存泄漏
异步函数demonemoryleak(){
设ctx=newaudiocontext();
设buffer1=newarraybuffer(10*1024*1024);
let stream=wait navigator.mediaDevices.getUserMedia({audio:true,video:false});
let at=stream.getAudioTracks()[0];
at.onended=()=>{
console.log(buffer1);
};
设置超时(()=>{
at.stop();
log('buffer1是垃圾收集的');
}, 5000);
}
异步函数demoMemoryLeak(){
设ctx=newaudiocontext();
设buffer1=newarraybuffer(10*1024*1024);
let stream=wait navigator.mediaDevices.getUserMedia({audio:true,video:false});
let at=stream.getAudioTracks()[0];
at.onended=()=>{
console.log(buffer1);
};
让source=ctx.createMediaStreamSource(流);
source.connect(ctx.destination);
设置超时(()=>{
source.disconnect();
source=null;
at.stop();
log('buffer1未被垃圾收集');
}, 5000);
}

断开连接后,您没有关闭音频上下文,这可能会对您有所帮助

ctx.close()