簡體   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