首页 > 解决方案 > 通话期间翻转或更换摄像头 webrtc

问题描述

我有以 xamarin 形式开发的移动应用程序。我正在为视频通话运行 webview,现在一切正常,只是在运行视频通话期间我无法切换前置或后置摄像头。

这是我迄今为止尝试过但没有成功的方法。

我在 html 代码中添加了选择选项,我可以在其中选择前置或后置摄像头,这是 javascript 的代码

$('select').on('change', function (e) {
    navigator.mediaDevices.enumerateDevices().then(function (devices) {
 
    var valueSelected = $("#myselect option:selected").val();
    alert(valueSelected);
    //var myselect = 0;

    if (valueSelected == "0") {
        var cameras = [];
        devices.forEach(function (device) {
            'videoinput' === device.kind && cameras.push(device.deviceId);
        });
        var constraints = { video: { deviceId: { exact: cameras[0] } } };
        navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {            // Set your video displays
            window.localStream = stream;
            myapp.setMyVideo(window.localStream)
            if (callback)
                callback();
        }, function (err) {
            console.log("The following error occurred: " + err.name);
            alert('Unable to call ' + err.name)
        });
    }
    else {
        var cameras = [];
        devices.forEach(function (device) {
            'videoinput' === device.kind && cameras.push(device.deviceId);
        });
        var constraints = { video: { deviceId: { exact: cameras[1] } } };
        navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {            // Set your video displays
            window.localStream = stream;
            myapp.setMyVideo(window.localStream)
            if (callback)
                callback();
        }, function (err) {
            console.log("The following error occurred: " + err.name);
            alert('Unable to call ' + err.name)
        });
    }
    //var myselect = $("#myselect option:selected").val();
   
    });
});

当视频通话默认开始时,它会打开后置摄像头

标签: xamarin.formswebrtcpeerjs

解决方案


推荐阅读