如何关闭相机灯(手电筒)?

Die*_*ego 8 javascript media jquery quaggajs

我正在创建一个应用程序来读取条形码。我使用 QuaggaJS 作为条形码阅读器库。我的问题是我可以打开手电筒,但不能关闭它。

var track = Quagga.CameraAccess.getActiveTrack();
track.applyConstraints({advanced: [{torch:true}]}); //Torch is on
track.applyConstraints({advanced: [{torch:false}]}); //Torch still on :(
Run Code Online (Sandbox Code Playgroud)

有没有办法关闭手电筒?

vij*_*oli 0

您正在使用两个单独的applyConstraints调用,而无需等待第一个调用完成。applyConstraints 方法是异步的,第二个调用在第一个调用完成之前执行。要解决此问题,您可以使用以下then方法

var track = Quagga.CameraAccess.getActiveTrack();

track.applyConstraints({
        advanced: [{
            torch: true
        }]
    })
    .then(function() {
        // Torch is on
        console.log('Torch turned on successfully');

        // Now, turn off the torch
        return track.applyConstraints({
            advanced: [{
                torch: false
            }]
        });
    })
    .then(function() {
        // Torch is off
        console.log('Torch turned off successfully');
    })
    .catch(function(error) {
        console.error('Error applying constraints:', error);
    }); 
Run Code Online (Sandbox Code Playgroud)