【发布时间】:2018-01-23 06:55:17
【问题描述】:
我有一个可以正常工作的视频 (webm) 捕获脚本。它录制视频,然后将其作为下载提供。代码的相关部分是这样的:
stopBtn.addEventListener('click', function() {
recorder.ondataavailable = e => {
ul.style.display = 'block';
var a = document.createElement('a'),
li = document.createElement('li');
a.download = ['video_', (new Date() + '').slice(4, 28), '.'+vid_format].join('');
a.textContent = a.download;
a.href = URL.createObjectURL(stream); //<-- deprecated usage?
li.appendChild(a);
ul.appendChild(li);
};
recorder.stop();
startBtn.removeAttribute('disabled');
stopBtn.disabled = true;
}, false);
正如我所说,这很有效。但是,控制台说不推荐将媒体流传递给URL.createObjectURL,我应该改用HTMLMediaElement srcObject。
所以我把它改成了:
a.href = URL.createObjectURL(video.srcObject);
...虽然一切仍然有效,但我收到了同样的警告。
有谁知道我如何在不使用这种已弃用的方式的情况下获取 URL 或 blob 数据?
我也尝试从视频元素中读取 src 和 currentSrc 属性,但在涉及流的地方它们返回为空。
【问题讨论】:
-
您正在尝试下载流?执行此操作的常用方法是通过 MediaRecorder 创建一个 blob,然后下载该 blob(这涉及 URL.createObjectURL 但使用 blob,而不是流)
-
基本上我只想将录制的视频保存到服务器。感谢您的提示-您能给我一些有关如何执行此操作或阅读什么的指示吗?代码 sn-p 就是 ace。
-
这段代码真的有效吗?奇怪...
标签: javascript video stream webrtc webm