[英]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.