Skip to content

Instantly share code, notes, and snippets.

@goofmint
Created February 20, 2018 07:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save goofmint/e1c96b48b3d02f7faa9133d3a67daed2 to your computer and use it in GitHub Desktop.
Save goofmint/e1c96b48b3d02f7faa9133d3a67daed2 to your computer and use it in GitHub Desktop.
// 開始ボタンを押した時の処理
startButton.addEventListener("click", function() {
// Webカメラにアクセス
navigator.mediaDevices.getUserMedia({
video: true,
audio: true
}).then(stream => {
// アクセスが許可された場合
preview.srcObject = stream; // プレビューにWebカメラの映像を表示
downloadButton.href = stream; // ダウンロードボタンにも配置
// 表示内容をキャプチャする
preview.captureStream = preview.captureStream || preview.mozCaptureStream;
// プレビューが表示開始するタイミングをPromiseで取得
return new Promise(resolve => preview.onplaying = resolve);
})
// 表示が開始したらレコーディングを開始
.then(() => startRecording(preview.captureStream(), recordingTimeMS))
// レコーディングが終了時の処理
.then (recordedChunks => {
let recordedBlob = new Blob(recordedChunks, { type: "video/webm" });
recording.src = URL.createObjectURL(recordedBlob);
downloadButton.href = recording.src;
downloadButton.download = "RecordedVideo.webm";
})
.catch((err) => console.log(err));
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment