質問編集履歴

1

参考ページ・コードを追加しました。

2020/06/27 22:43

投稿

syukun2
syukun2

スコア24

test CHANGED
File without changes
test CHANGED
@@ -9,3 +9,107 @@
9
9
 
10
10
 
11
11
  よろしくお願いします。
12
+
13
+
14
+
15
+ 参考ページ:
16
+
17
+ [https://qiita.com/niisan-tokyo/items/fa6ff649a9a3312148bc](https://qiita.com/niisan-tokyo/items/fa6ff649a9a3312148bc)
18
+
19
+
20
+
21
+ コード:
22
+
23
+ ```Javascript
24
+
25
+ var video = document.getElementById('video')// 適当にvideoタグのオブジェクトを取得
26
+
27
+ var constrains = { video: true, audio: true }// 映像・音声を取得するかの設定
28
+
29
+ navigator.mediaDevices.getUserMedia(constrains)
30
+
31
+ .then(function(stream) {
32
+
33
+ video.srcObject = stream // streamはユーザーのカメラとマイクの情報で、これをvideoの入力ソースにする
34
+
35
+ video.play()
36
+
37
+ })
38
+
39
+ .catch(function(err) {
40
+
41
+ console.log("An error occured! " + err)
42
+
43
+ })
44
+
45
+ // まずはユーザーのカメラ・マイクへのアクセスを実施
46
+
47
+ navigator.mediaDevices.getUserMedia(constrains)
48
+
49
+ .then(function (stream) {
50
+
51
+ recorder = new MediaRecorder(stream) // 映像の入力ソースをユーザーのデバイスから取得
52
+
53
+ recorder.ondataavailable = function (e) {
54
+
55
+ var testvideo = document.getElementById('test')
56
+
57
+ testvideo.setAttribute('controls', '')
58
+
59
+ testvideo.setAttribute('width', width)
60
+
61
+ testvideo.setAttribute('height', height)
62
+
63
+ var outputdata = window.URL.createObjectURL(e.data) // videoタグが扱えるように、記録データを加工
64
+
65
+ testvideo.src = outputdata // テスト用のビデオのソースに記録データを設置
66
+
67
+ }
68
+
69
+ })
70
+
71
+
72
+
73
+ startbutton.addEventListener('click', function(ev){
74
+
75
+ recorder.start()
76
+
77
+ ev.preventDefault()
78
+
79
+ }, false);
80
+
81
+
82
+
83
+ stopbutton.addEventListener('click', function(ev) {
84
+
85
+ recorder.stop()
86
+
87
+ })
88
+
89
+
90
+
91
+ downloadbutton.addEventListener('click', function(ev) {
92
+
93
+ console.log(record_data)
94
+
95
+ var blob = new Blob(record_data, { type: 'video/webm' })// 録画ファイルをblob形式に出力
96
+
97
+ var url = window.URL.createObjectURL(blob) // データにアクセスするためのURLを作成
98
+
99
+ var a = document.createElement('a') // download属性を持ったaタグをクリックするとダウンロードができるので、それをシミュレートする
100
+
101
+ document.body.appendChild(a)
102
+
103
+ a.style = 'display:none'
104
+
105
+ a.href = url;
106
+
107
+ a.download = 'test.webm'
108
+
109
+ a.click()
110
+
111
+ window.URL.revokeObjectURL(url)
112
+
113
+ })
114
+
115
+ ```