WebRtc入门 - API说明_webrtc api

  • InvalidStateError: 由于用户操作(例如事件处理程序)而运行的代码未调用。此事件的另一个潜在原因: document在其上下文中getDisplayMedia()被调用的未完全激活;例如,它可能不是最前面的选项卡。
  • NotAllowedError: 用户拒绝访问屏幕区域的权限,或者当前浏览实例无权访问屏幕共享。
  • NotFoundError: 没有可供捕获的屏幕视频源。
  • NotReadableError: 用户选择了一个屏幕、窗口、选项卡或其他屏幕数据源,但发生了硬件或操作系统级别的错误或锁定,从而阻止了所选源的共享。
  • OverconstrainedError: 创建流后,应用指定constraints失败,因为无法生成兼容的流。
  • TypeError: constraints调用时不允许指定的包含约束getDisplayMedia()。这些不受支持的约束是advanced和任何约束,这些约束 又具有名为minor的成员 exact
  • AbortError: 其他失败情况
实例
async function startCapture(displayMediaOption) {
	let captureStream = null;
	
	try {
		captureStream = await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
	}catch(err) {
		console.error("Error:" + err);
	}
	return captureStream;
}

1.3 查询媒体设备

说明
var enumeratorPromise = navigator.mediaDevices.enumerateDevices();

返回值:enumeratorPromise,如果调用成功则得到一个包含成员MediaDevicesInfo的数组,该数组列出了所有可用的媒体设备;如果调用失败,则得到空值。MediaDevicesInfo的定义如下所示

定义
interface MediaDeviceInfo {
    readonly deviceId: string;
    readonly groupId: string;
    readonly kind: MediaDeviceKind;
    readonly label: string;
    toJSON(): any;
}

declare var MediaDeviceInfo: {
    prototype: MediaDeviceInfo;
    new(): MediaDeviceInfo;
};

type MediaDeviceKind = "audioinput" | "audiooutput" | "videoinput";

MediaDeviceInfo属性说明
属性 类型 说明
deviceId DOMString 设备ID
groupId DOMString 组ID
label DOMString 设备的描述信息,如"Full HD webcam (1bcf:2284)"
kind MediaDeviceKind 设备类型,取值为videoinput(视频输入设备)、audioinput(音频输入设备)、audiooutput(音频输出设备)
使用实例
if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
  console.log("enumerateDevices() not supported.");
  return;
}

// List cameras and microphones.

navigator.mediaDevices.enumerateDevices()
.then(function(devices) {
  devices.forEach(function(device) {
    console.log(device.kind + ": " + device.label +
                " id = " + device.deviceId);
  });
})
.catch(function(err) {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值