当我使用getUserMedia()
进行屏幕分享时,我无法获得音频。
我想做的事情,但无法找到相关内容:
截图:
答案 0 :(得分:2)
如果您想要为视频轨道制作一个由屏幕共享构成的流,而为音频轨道制作网络摄像头/麦克风音频,则需要分别对屏幕和音频设置约束的getusermedia进行2次调用。那么你将不得不将轨道放在一个公共流中。最终,您可以将该流附加到对等连接。 正如peveuve所说,你也可以使用两个对等连接,但它至少有两个问题:
这是浏览器的强制性安全功能(防止恶意页面在您不知情的情况下广播您的屏幕)。我根本不知道如何操纵它
答案 1 :(得分:2)
可以在Chrome上使用npm-msr。
getScreenId(function (error, sourceId, screen_constraints) {
navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia;
navigator.getUserMedia(screen_constraints, function (stream) {
navigator.getUserMedia({audio: true}, function (audioStream) {
stream.addTrack(audioStream.getAudioTracks()[0]);
var mediaRecorder = new MediaStreamRecorder(stream);
mediaRecorder.mimeType = 'video/mp4'
mediaRecorder.stream = stream;
document.querySelector('video').src = URL.createObjectURL(stream);
var video = document.getElementById('screen-video')
if (video) {
video.src = URL.createObjectURL(stream);
video.width = 360;
video.height = 300;
}
}, function (error) {
alert(error);
});
}, function (error) {
alert(error);
});
});
答案 2 :(得分:0)
检查此答案:Is it possible broadcast audio with screensharing with WebRTC
你不能在同一个同伴中共享屏幕和音频,你必须打开2个同伴。