diff options
author | Mohammad Amoush <mohammad_amoush@brown.edu> | 2019-10-01 17:32:21 -0400 |
---|---|---|
committer | Mohammad Amoush <mohammad_amoush@brown.edu> | 2019-10-01 17:32:21 -0400 |
commit | 91b079461d026bed4171d0034e6a7ac495a018c1 (patch) | |
tree | a13a8292e2dc73dd02cea6b7de0c6fe659226d0f /src | |
parent | 6279193cab61e322cfafee56c521fde1482b999a (diff) |
WebRTC protocol trials
Diffstat (limited to 'src')
-rw-r--r-- | src/client/views/webcam/DashWebRTC.tsx | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/client/views/webcam/DashWebRTC.tsx b/src/client/views/webcam/DashWebRTC.tsx new file mode 100644 index 000000000..451437429 --- /dev/null +++ b/src/client/views/webcam/DashWebRTC.tsx @@ -0,0 +1,47 @@ +import { observer } from "mobx-react"; +import React = require("react"); +import { CollectionFreeFormDocumentViewProps } from "../nodes/CollectionFreeFormDocumentView"; +import { FieldViewProps } from "../nodes/FieldView"; +import { observable } from "mobx"; + + +const mediaStreamConstaints = { + video: true, +}; + + +@observer +export class DashWebRTC extends React.Component<{}> { + + @observable private videoEl: HTMLVideoElement | undefined; + @observable private localStream: MediaStream | undefined; + + + gotLocalMediaStream = (mediaStream: MediaStream) => { + this.localStream = mediaStream; + if (this.videoEl) { + this.videoEl.srcObject = mediaStream; + } + } + + handleLocalMediaStreamError = (error: string) => { + console.log("navigator.getUserMedia error: ", error); + } + + componentDidUpdate() { + navigator.mediaDevices.getUserMedia(mediaStreamConstaints).then(this.gotLocalMediaStream).catch(this.handleLocalMediaStreamError); + } + + + + + render() { + return ( + <div> + <video autoPlay playsInline ref={(e) => this.videoEl = e!}></video> + </div> + ); + } + + +}
\ No newline at end of file |