我有这段代码,可以每秒捕获/记录来自摄像机/音频的视频
$(function () {
var handleSuccess = function(stream) {
var player = document.querySelector("#vid-user");
var guestPlayer = document.querySelector("#vid-guest");
player.srcObject = stream;
console.log("Starting media recording")
var options = {mimeType: 'video/webm'};
var mediaRecorder = new MediaRecorder(stream, options);
mediaRecorder.ondataavailable = function(e) {
console.log("Data available")
if (e.data.size > 0) {
// How do I display the captured video to the guestPlayer ?
}
}
mediaRecorder.start(1000);
};
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
.then(handleSuccess)
})
这里的问题是如何显示捕获到guestPlayer
的视频,我这样做是为了测试捕获的数据,因为该webm块e.data
将被上传到服务器。
e.data
包含
data: Blob
size: 26009
type: "video/webm"
__proto__: Blob
size: (...)
type: (...)
slice: ƒ slice()
stream: ƒ stream()
text: ƒ text()
arrayBuffer: ƒ arrayBuffer()
constructor: ƒ Blob()
Symbol(Symbol.toStringTag): "Blob"
get size: ƒ size()
get type: ƒ type()
__proto__: Object
答案 0 :(得分:1)
就这么简单
video.src = URL.createObjectURL(e.data);
https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
使用完该blob后,请务必使用URL.revokeObjectURL()
。