Electron webRtc 推桌面流/声音

90 阅读1分钟

webrtc推桌面流不带声音:

var videoStream = await navigator.mediaDevices.getUserMedia({
            audio:false,
            video: {
                mandatory: {
                    chromeMediaSource: 'desktop',
                    chromeMediaSourceId: sourceId, // 屏幕分享源 id
                    //   minWidth: 1280,
                    //   maxWidth: 1280,
                    //   minHeight: 720,
                    //   maxHeight: 720
                }
            }
        });
        
        self.pc = new RTCPeerConnection();
        self.stream = new MediaStream();
        videoStream.getTracks().forEach(function (track) {
            pc.addTrack(track);
            self.ontrack && self.ontrack({ track: track });
        });
        self.ontrack = function (event) {
        self.stream.addTrack(event.track);
    };

web推送桌面流及麦克风声音:增加音频流,然后把二个合并一起,再用合并之后的流来做推送

var audioStream = await navigator.mediaDevices.getUserMedia({
             audio: {
             //默认输入的音频设备ID,groupID不是固定的
                deviceId: audioId,
                groupId: audioGroup,
                echoCancellation: true,
                noiseSuppression: true,
                autoGainControl: true
            }
        })
        const combinedStream = new MediaStream([...videoStream.getVideoTracks(), ...audioStream.getAudioTracks()])