javascript - ReactJS - 来自网络摄像头的视频流无法正常工作

标签 javascript reactjs html5-video webcam

我不确定为什么这不起作用。我正在获取相机流并且它正在工作,因为我的相机上有光。

流似乎没有附加。



class VideoOutput extends React.Component {
    constructor(props) {
        super(props);
        this.videoRef = React.createRef();
    }

    componentDidMount() {
        const videoObj = this.videoRef.current;
        videoObj.srcObject = this.props.video;
        console.log(videoObj);
    }

    render() {
        return <video ref={this.videoRef}></video>;
    }
}


class Application extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
      video: null
    };

    this.handleVideoClick = this.handleVideoClick.bind(this);
  }


  async getVideo() {
    const video = await navigator.mediaDevices.getUserMedia({
      audio: false,
      video: true
    });
    this.setState({ video });
  }

  stopVideo() {
    this.state.video.getTracks().forEach(track => track.stop());
    this.setState({ video: null });
  }


  handleVideoClick() {
    if (this.state.video) {
      this.stopVideo();
    } else {
      this.getVideo();
    } 
  }

  render(){
    return(
      <div>
          <button onClick={this.handleVideoClick}>
            {this.state.video ? 'Vid On' : 'Vid Off'}
          </button>
      <div>
      {this.state.video ? <VideoOutput video={this.state.video} /> : ''}
       </div>
       </div>
    );
  }


}

ReactDOM.render(<Application />, document.getElementById('root'));

这里的非功能示例: https://codepen.io/Chenzo/pen/QXXVvr

这似乎应该对我有用...但我怀疑我遗漏了一些简单的东西。

最佳答案

我怀疑问题出在您没有播放视频。在设置 srcObject 后尝试添加:

videoObj.play();

关于javascript - ReactJS - 来自网络摄像头的视频流无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57047692/

相关文章:

javascript - 在另一个选择字段更改后重新填充的动态选择字段 - Laravel 5.2 和 JS

javascript - 我如何解构此 react 组件中的对象状态数组以使用单个字段数据

javascript - React Router - 呈现 <Redirect> 而不是子列表组件

jquery - HTML5视频播放和暂停触发

xcode - WKWebView Mac 浏览器启用全屏 html5?

javascript - 在 BigVideo.js 加载之前,小播放器出现在左上角

javascript - contentEditable div 显示 : none/block focus problem on Chrome

javascript - ng-选项 : how to put empty option at the end?

javascript - 本地存储 Google 的 Recaptcha 脚本

javascript - React/Gatsby 组件交互(提升状态)与 MDX 文件中的组件