使用 Reactjs 和 WebRTC 选择屏幕后屏幕共享屏幕不显示
Screen sharing screen does not display after choosing screen using Reactjs and WebRTC
我可以点击分享画面,选择我想要的画面,但点击后视频中没有任何显示。
我想显示我点击或选择的画面
共享屏幕功能:
const shareScreen = () => {
var displayMediaStreamConstraints = {
video: true // or pass HINTS
};
if (navigator.mediaDevices.getDisplayMedia) {
navigator.mediaDevices.getDisplayMedia(displayMediaStreamConstraints);
} else {
navigator.getDisplayMedia(displayMediaStreamConstraints);
}
};
视频组件
<Paper className={classes.paper}>
<Grid item xs={12} md={6}>
<Typography variant="h5" gutterBottom>{name || 'Name'}</Typography>
<video playsInline muted ref={myVideo} autoPlay className={classes.video} />
</Grid>
<button onClick={shareScreen}>Share Screen</button>
</Paper>
getDisplayMedia
不显示任何内容,它 returns 一个解析为流的承诺。为了显示视频,您需要等待承诺解决,然后将流分配给 HTMLVideoElement
.
的 srcObject
字段
let video = document.getElementById('uservideo');
let stream = await navigator.mediaDevices.getDisplayMedia(constraints);
video.srcObject = stream;
我可以点击分享画面,选择我想要的画面,但点击后视频中没有任何显示。
我想显示我点击或选择的画面
共享屏幕功能:
const shareScreen = () => {
var displayMediaStreamConstraints = {
video: true // or pass HINTS
};
if (navigator.mediaDevices.getDisplayMedia) {
navigator.mediaDevices.getDisplayMedia(displayMediaStreamConstraints);
} else {
navigator.getDisplayMedia(displayMediaStreamConstraints);
}
};
视频组件
<Paper className={classes.paper}>
<Grid item xs={12} md={6}>
<Typography variant="h5" gutterBottom>{name || 'Name'}</Typography>
<video playsInline muted ref={myVideo} autoPlay className={classes.video} />
</Grid>
<button onClick={shareScreen}>Share Screen</button>
</Paper>
getDisplayMedia
不显示任何内容,它 returns 一个解析为流的承诺。为了显示视频,您需要等待承诺解决,然后将流分配给 HTMLVideoElement
.
srcObject
字段
let video = document.getElementById('uservideo');
let stream = await navigator.mediaDevices.getDisplayMedia(constraints);
video.srcObject = stream;