是否可以通过 WebRTC 的屏幕共享来广播音频?简单调用因权限被拒绝错误getUserMedia
而失败。audio: true
是否有任何解决方法也可用于广播音频?将在屏幕共享旁边实现音频吗?
谢谢。
是否可以通过 WebRTC 的屏幕共享来广播音频?简单调用因权限被拒绝错误getUserMedia
而失败。audio: true
是否有任何解决方法也可用于广播音频?将在屏幕共享旁边实现音频吗?
谢谢。
请参阅此演示:从单个对等连接共享屏幕和音频/视频!
捕获多个流并将其附加到单个对等连接。AFAIK,音频chromeMediaSource:screen
“仍然”是不允许的。
现在,您可以在 Firefox 和 Chrome 上使用单个 getUserMedia 请求来捕获音频+屏幕。
然而 Chrome 仅支持音频+标签,即您不能与音频一起捕获全屏。
Audio+Tab 表示任何 chrome 选项卡以及麦克风。
您可以通过发出两个并行(唯一)getUserMedia 请求来捕获音频和屏幕流。
现在您可以使用addTrack
方法将音轨添加到屏幕流中:
var audioStream = captureUsingGetUserMedia();
var screenStream = captureUsingGetUserMedia();
var audioTrack = audioStream.getAudioTracks()[0];
// add audio tracks into screen stream
screenStream.addTrack( audioTrack );
现在screenStream
有音频和视频轨道。
nativeRTCPeerConnection.addStream( screenStream );
nativeRTCPeerConnection.createOffer(success, failure, options);
要共享屏幕共享的音轨,您可以使用getDisplayMedia
而不是getUserMedia
. 文档。
navigator.mediaDevices.getDisplayMedia({audio: true, video: true})
这目前仅在Chrome / Edge中受支持,并且仅在使用“Chrome Tab”共享选项时受支持。您将Share audio
在对话框中看到一个复选标记。
在 Firefox 中,您可以使用 getUserMedia 在同一请求中获取屏幕共享/等和麦克风音频,并将其附加到 PeerConnection。您可以将它与其他流结合起来——Firefox 中单个 PeerConnection 中的多个音频或视频轨道需要 Firefox 38 或更高版本。目前 38 是 Developer Edition(以前称为 Aurora)。38 应该会在大约 9 周左右发布。
是的,您可以通过两个请求在 chrome 上录制音频和屏幕录制。
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);
});
});