我正在尝试制作类似于
的东西
https://recordscreen.io/
它将用户摄像头定位在屏幕录像上
我现在分别拥有两个流。
我尝试过将一个位置放置在另一个位置,但我希望在单个视频元素中记录
我尝试用其他两个流中的曲目创建组合的媒体流,但根本无法定位它们
/**
* Edge has a slightly incorrect implementation of getDisplayMedia
* Typescript currently uses this so typing is incorrect
*/
const screenMediaStream = await (navigator.getDisplayMedia ?
navigator.getDisplayMedia(constraints) :
(navigator.mediaDevices as any).getDisplayMedia(constraints)
) as MediaStream;
const cameraMediaStream = await navigator.mediaDevices.getUserMedia({
audio: true,
video: { width: 150, height: 150 }
});
const combinedMediaStream = new MediaStream([...cameraMediaStream.getTracks(), ...screenMediaStream.getTracks()]);
screenVideoElement.srcObject = combinedMediaStream;
这仅显示网络摄像头。我希望能够将网络摄像头放置在屏幕录像的顶部。
答案 0 :(得分:0)
基本上,您必须在画布中使用适当的位置和尺寸来渲染两个流,以截取带有全屏和高度的流。对于用户摄像机流捕获,它将在左下角以150X150大小显示。现在,您必须开始将这些流写入画布。并使用captureStream()方法,我们可以访问合并的视频流并开始使用它。