webrtc入门:2.使用getDisplayMedia获取屏幕桌面流

本文介绍了如何通过WebRTC的getDisplayMedia方法在浏览器中获取桌面或特定程序的共享流,对比了getUserMedia获取摄像头数据的方法。通过几行简单的JavaScript代码,可以在网页上实现桌面或应用的实时演示,方便快捷。
摘要由CSDN通过智能技术生成

在会议系统中,我们有时不仅仅需要摄像头的数据,在一些场景下,需要演示桌面上的程序,同样的webrtc也提供了这个功能,而且都可以从浏览器上直接获取。

前面中,我们通过getUserMedia就可以获取摄像头和麦克风的数据,在webrtc中,获取桌面或者指定某个程序,通过getDisplayMedia可以得到。

main.js

#获取显示桌面数据的video 
const video = document.querySelector('video');

#getUserMedia 参数,这里只获取视频
const constraints = {
  audio: false,
  video: true
};

把桌面的数据展示在video上
function handleSuccess(stream) {
  window.stream = stream;
  video.srcObject = stream;
}

#错误处理
function handleError(error) {
  console.log('navigator.MediaDevices.getUserMedia error: ', error.message, error.name);
}

#获取桌面程序数据并回调

navigator.mediaDevices.getDisplayMedia(constraints).then(handleSuccess).catch(handleError);

选择整个屏幕,或者某个窗口。

在这里插入图片描述
我这里选择的是单个窗口,Android Studio 开始进行播放。

在这里插入图片描述

这里对比一下,在获取摄像头的数据是navigator.mediaDevices.getUserMedia(constraints) 获取桌面的数据是navigator.mediaDevices.getDisplayMedia(constraints),都是从navigator.mediaDevices 出发,也就是navigator.mediaDevices 管理着从哪里获取媒体数据。

从这两章的内容,我们可以看出来,使用浏览器来调用摄像头或者是桌面的数据是非常简单的,只要短短的几句话就可以把摄像头和桌面的数据显示出来,非常的方便。

这节的demo在这里

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go2coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值