【发布时间】:2020-03-26 05:17:01
【问题描述】:
创建元素的 React 代码如下所示:
export const VideoPage: React.FC<{}> = () => {
const localVideoRef = useCallback((localVideo: HTMLMediaElement | null) => {
if (localVideo) {
startVideo(localVideo);
}
}, []);
return (
<>
<video ref={localVideoRef} playsInline></video>
</>
);
};
函数startVideo()就是:
export async function startVideo(localVideo: HTMLMediaElement) {
const mediaStream = await navigator.mediaDevices.getUserMedia({
audio: false,
video: true,
});
console.log("localVideo", localVideo);
console.log("mediaStream", mediaStream);
localVideo.srcObject = mediaStream;
}
当我加载页面时,相机上方的绿灯亮起;红色的“视频”点出现在浏览器的选项卡上;视频元素占据了浏览器页面中心的一个正方形。控制台上记录了以下内容:
localVideo <video playsinline></video>
mediaStream MediaStream {id: "jTQifTT0vSfcBw7v6E6E9M81mpv7qVhRrTe2", active: true, onaddtrack: null, onremovetrack: null, onactive: null, …}
一切都如我所料。其实唯一没想到的是视频流没有出现在屏幕上。
我不知道如何调试它。一切看起来都很正常,但它就是不起作用。有什么建议吗?
【问题讨论】:
标签: reactjs typescript html5-video react-hooks