BrowserCaptureMediaStreamTrack: cropTo() 方法
BrowserCaptureMediaStreamTrack
接口的 cropTo()
方法将自捕获流裁剪到指定 DOM 元素渲染的区域。
语法
js
cropTo(cropTarget)
参数
cropTarget
-
一个
CropTarget
实例,代表流应被裁剪到的元素渲染区域,或者null
/undefined
,在这种情况下,将从轨道中移除先前设置的任何裁剪。
返回值
Promise 会在以下情况下被拒绝:
- 轨道
kind
不是"video"
,或者其readyState
不是"live"
。 - 裁剪目标元素不再存在。
- 正在裁剪的轨道不是从用户屏幕捕获的轨道。
cropTarget
不是CropTarget
实例、null
或undefined
。cropTarget
是在与当前捕获的标签页不同的标签页中创建的。
注意: 在 Chromium 中,如果一个轨道有副本,cropTo()
将被拒绝(请参阅 Chrome issue 41482026)。
示例
基本裁剪示例
js
// Options for getDisplayMedia()
const displayMediaOptions = {
preferCurrentTab: true,
};
// Create crop target from DOM element
const demoElem = document.querySelector("#demo");
const cropTarget = await CropTarget.fromElement(demoElem);
// Capture video stream from user's webcam and isolate video track
const stream =
await navigator.mediaDevices.getDisplayMedia(displayMediaOptions);
const [track] = stream.getVideoTracks();
// Crop video track
await track.cropTo(cropTarget);
// Broadcast cropped stream in <video> element
videoElem.srcObject = stream;
有关上下文中的示例代码,请参阅 使用元素捕获和区域捕获 API。
停止裁剪
您可以通过在一个先前已裁剪的轨道上调用 cropTo()
方法,并将其参数设置为 null
来停止裁剪。
js
// Stop cropping
await track.cropTo(null);
规范
规范 |
---|
区域捕获 # dom-browsercapturemediastreamtrack-cropto |
浏览器兼容性
加载中…