【问题标题】:Android Chrome Switch from Front to Rear camera using JavaScriptAndroid Chrome 使用 JavaScript 从前置摄像头切换到后置摄像头
【发布时间】:2020-07-23 15:50:32
【问题描述】:

我无法正确弄清楚这一点,或者是否可以切换相机。

我尝试在第二次调用 getUserMedia 之前停止视频轨道,希望停止视频轨道会关闭前置摄像头,以便打开后置摄像头,但它不起作用。


var oldStream; // the old stream from getUserMedia

Function SwitchCamera() {

    oldStream.getVideoTracks()[0].stop();

    navigator.mediaDevices.getUserMedia({audio: true, video: {deviceId: 'rear camera device ID'}).then(function(newStream){

        // this never runs

    }).catch(function(err){
        console.log(err); // Cannot connect camera
    });

}

要在手机上切换摄像头,我还需要做些什么吗?这甚至可能吗?

【问题讨论】:

    标签: javascript android google-chrome mobile mediadevices


    【解决方案1】:

    在移动设备上,我们似乎只需要给相机足够的时间来关闭它。将getUserMedia 包装在setTimeout 中,延迟约1 秒(1,000 毫秒)足以进行我的测试,尽管我还将尝试在抛出错误之前连续交换相机3 次。我不确定如何检查实际设备是否已停止或关闭,或者是否可以检查,但我怀疑由于浏览器安全性,这是不可能的。

    在一个完美的世界中,MediaStreamTrack.stop() 会返回一个 Promise,告诉我们与该轨道关联的设备是否实际停止/关闭,或者它是否由于它被用于其他轨道而仍在运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多