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

标签 javascript setinterval

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

我已将 console.log 调试输出添加到间隔函数,但它们没有输出,因为没有调用间隔。

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 并将其记录到控制台。

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

最佳答案

由于与变量名称冲突,我通过将间隔回调函数的名称更改为 intervalCallback 来修复此问题。感谢@Musa 的建议。

关于javascript - setInterval 在函数中使用时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56637493/

相关文章:

javascript - 在 Cloud Firestore 中查找具有特定引用的所有文档

javascript - 使用javascript检查多个字符串是否相互包含

javascript每5秒无限循环一次对象

JavaScript 闭包和 "this"

javascript - 无法使用 Xcode 7.3 将 React Native 应用程序上传到 iTunes Connect

php - 带有超时条件的 XMLHTTPRequest

javascript - 随机报价生成器 - 如何在每次页面加载或页面刷新后设置 setInterval?

使用flipCounter setInterval/onAnimationStopped 的 jQuery Ajax 计时循环问题

Javascript - 设置间隔()

Javascript setInterval 不更新内部使用的时间戳