sub*_*754 5 javascript websocket webrtc get-display-media
我正在开发一个屏幕捕获应用程序,并且能够使ondataavailable
事件工作并以块的形式获取数据,我将其进一步转换为 blob,但是当我通过 websocket 将相同的数据流发送到服务器并将该流另存为 webm 文件时磁盘然后播放文件,该文件不播放任何内容。我认为该文件需要一些我不确定的元信息。
有什么建议?
这是我的 javascript 代码:
socket.emit('message', new Blob([event.data], {type: 'video/webm'}));
服务器保存代码:
fs.writeFile("d://test.webm", data, "binary", function(err) { });
该dataavailable
事件返回一个块\xe2\x80\x94a 录音片段 \xe2\x80\x94 并触发多次。一个事件不可能包含整个录音。
将多个事件的数据合并到一个chunks
数组中,然后在停止记录后,将整个数组合并到一个新的数组中Blob
. 这会生成一个适合我的文件:
const rec = new MediaRecorder(stream), chunks = [];\nrec.ondataavailable = e => chunks.push(e.data);\nrec.start();\nawait new Promise(r => setTimeout(r, 10000)); // wait 10 seconds\nrec.stop();\nawait new Promise(r => rec.onstop = r);\nconst blob = new Blob(chunks);\nlink.href = URL.createObjectURL(blob);\n
Run Code Online (Sandbox Code Playgroud)\n\n工作演示: https://jsfiddle.net/jib1/pkc16k9r/
\n 归档时间: |
|
查看次数: |
928 次 |
最近记录: |