繁体   English   中英

在函数中使用setInterval时不起作用

[英]setInterval doesn't work when used in a function

我正在编写一个JS程序来记录媒体并每隔几秒钟输出一次结果。 我使用setInterval每隔几秒钟调用一次MediaRecorder.requestData(),但是从未调用过它。

我已将console.log调试输出添加到interval函数中,但由于未调用interval而未输出。

function interval() {
    mediaRecorder.requestData();
}
function stream() {
    if (navigator.mediaDevices) {
        var constraints = {audio : true, video : true};
        navigator.mediaDevices.getUserMedia(constraints)
        .then(function(stream) {
            mediaRecorder = new MediaRecorder(stream);
            mediaRecorder.start();
            mediaRecorder.ondataavailable = sendData;
        });
        interval = window.setInterval(interval, 30000);
    }
}

mediaRecorder是全局变量,sendData是将处理blob并将其记录到控制台的函数。

我希望对interval()的调用每30秒发生一次。 控制台中没有错误消息,但是似乎从未调用interval(),而仅当在浏览器中手动停止记录时才调用sendData()。

我通过改变间隔回调函数的名称,固定它intervalCallback因为变量名称冲突。 感谢@Musa的建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM