3

我正在尝试将 getUserMedia 生成的 blob URL 上传到服务器。 其他人想做同样的事情,这个问题已经得到解答。

我对 XHR 请求使用与回答该问题的人相同的代码,但我得到了 404。我做了一个小提琴,当您查看控制台时也会发生同样的事情。我的网站上也有一个活生生的例子,同样的事情也会发生。

这是需要一些 TLC 的代码:

function XHR(){
var xhr = new XMLHttpRequest();
xhr.open('GET',record.src); //404 ???
xhr.responseType = 'blob';
xhr.onload = function(e) {
    if (this.status == 200){
        //do some stuff
        result.innerText = this.response;
    }
};
xhr.send();
}

其他人似乎都能做到这一点,因为这已经讨论过了。

展品 A

展品 B

我正在使用 ChromeOS,41.0.2252.2 开发。到底发生了什么,为什么我不能得到 blob?

4

3 回答 3

1

我几乎可以肯定 MediaStream 中的媒体没有保存在任何地方,只是在使用后被丢弃。
有一个用于记录流的 API MediaRecorder,.
只有 Firefox 有这个最基本的实现,所以它还不能使用。
如果您在移动设备上实现此功能,则可以使用具有捕获属性的文件输入。

<input type="file" accept="video/*" capture>
于 2015-01-01T21:59:34.513 回答
0

看这个帖子: Html5视频录制和上传?

您缺少的是“blob”是什么的声明。这个人在 .onload function() 中做的第一件事是 var blob = new Blob([this.response], {type: 'video/webm'});

于 2015-02-28T13:30:44.567 回答
0
function XHR(){
var xhr = new XMLHttpRequest();
xhr.open("GET","record.src",true); // adding true will make it work asynchronously
xhr.responseType = 'blob';
xhr.onload = function(e) {
    if (this.status == 200){
        //do some stuff
        result.innerText = this.response;
    }
};
xhr.send();
}

现在试试!它应该工作。

于 2015-01-08T12:33:22.147 回答