webrtc 设置不获取鼠标 启用回声消除

数 getDisplayMedia()(属于 navigator.mediaDevices 的一部分)与 getUserMedia() 类似,用于打开显示内容(或部分内容,如窗口)。返回的 MediaStream 与使用 getUserMedia() 时相同。

显示鼠标与否

getDisplayMedia() 的约束条件与常规视频或音频输入资源的限制不同。

{
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}

上述代码片段展示了屏幕录制的特殊限制的工作原理。请注意,并非所有支持显示媒体支持的浏览器都支持这些属性。

回声消除:

async function getConnectedDevices(type) {
    const devices = await navigator.mediaDevices.enumerateDevices();
    return devices.filter(device => device.kind === type)
}

// Open camera with at least minWidth and minHeight capabilities
async function openCamera(cameraId, minWidth, minHeight) {
    const constraints = {
        'audio': {'echoCancellation': true},
        'video': {
            'deviceId': cameraId,
            'width': {'min': minWidth},
            'height': {'min': minHeight}
            }
        }

    return await navigator.mediaDevices.getUserMedia(constraints);
}

const cameras = getConnectedDevices('videoinput');
if (cameras && cameras.length > 0) {
    // Open first available video camera with a resolution of 1280x720 pixels
    const stream = openCamera(cameras[0].deviceId, 1280, 720);
}
    'audio': {'echoCancellation': true},

echoCancellation
A ConstrainBoolean object specifying whether or not echo cancellation is preferred and/or required.

latency 延迟
A ConstrainDouble specifying the latency or range of latencies which are acceptable and/or required.

noiseSuppression 噪音消除
A ConstrainBoolean which specifies whether noise suppression is preferred and/or required.

https://webrtc.org/getting-started/media-devices?hl=zh-cn

应用约束

为了确定某个媒体流的特定轨道的实际配置,我们可以调用 MediaStreamTrack.getSettings(),它会返回当前应用的 MediaTrackSettings。

此外,也可以通过对媒体轨道上调用 applyConstraints() 来更新已打开的媒体设备上的轨道约束条件。这样,应用无需重新关闭现有音频流,即可重新配置媒体设备。

一键远程控制电脑手机,kkview.com

你可能感兴趣的:(webrtc,前端,javascript)