0

我无法“持续刷新”每 1 秒从我的相机拍摄的照片。现在图片只更改为相机拍摄的最后一张照片。任何想法如何使这项工作????

    function reflashIPCam(){
        newImage = new Image();
        newImage.src = "image taken from the camera" + new Date().getTime();
        document.getElementById("IPCamIMG").src = newImage.src;
    }

    function playIPCamLoop(){
        for (var i=0;i<5;i++){
            delayFunction();
        }
    }

    function delayFunction(){
        setTimeout(reflashIPCam, 1000);
    }
4

2 回答 2

1

为了完成时间,我认为最简单的重复方法是使用 setInterval

intervalRef = setInterval(reflashIPCam, 1000);

如果你想在 5 秒后停止它:

setTimeout("clearInterval(intervalRef)", 5000);

要从摄像头获取数据,请参阅access-from-the-browser-to-camera

于 2013-09-11T14:49:08.613 回答
0

当你写

delayFunction() {
     setTimeout(reflashIPCam, 1000);
}

reflashIPCam从执行 1000 毫秒开始编写函数调用delayFunction

由于循环是瞬时的,这意味着您可以同时对所有调用进行编程。所以当然你只能看到最后一次执行。

你可以像这样修复它:

function playIPCamLoop(){
    for (var i=0;i<5;i++){
        delayFunction(i+1);
    }
}

function delayFunction(i){
    setTimeout(reflashIPCam, i*1000);
}
于 2013-09-11T14:33:33.130 回答