XMLHttpRequest Статус 404 с URL-адресом BLOB-объекта

Я пытаюсь загрузить URL-адрес BLOB-объекта, созданный getUserMedia, на сервер. Кто-то еще хотел сделать то же самое, и на этот вопрос был дан ответ.

Я использую тот же код для запроса 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();
}

Все остальные, кажется, могут это сделать, потому что это обсуждалось ранее.

Выставка

Экспонат Б

Я использую ChromeOS, 41.0.2252.2 dev. Что именно происходит, и почему я не могу получить блоб?

3 ответа

Я почти уверен, что медиа в MediaStream нигде не сохраняются, просто выбрасываются после использования.
В работах есть API для записи потоков, MediaRecorder,
Только Firefox имеет самую базовую реализацию этого, поэтому он пока не может быть использован.
Если вы реализуете это на мобильном устройстве, вы можете использовать файл ввода с атрибутом захвата.

<input type="file" accept="video/*" capture>
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();
}

Попробуй сейчас! он должен работать.

Посмотрите на этот пост: HTML5 видео записи и загрузки?

Чего вам не хватает, так это декларации о том, что такое "блоб". Первое, что этот человек делает внутри функции.onload (), это var blob = new Blob([this.response], {type: 'video/webm'});

Другие вопросы по тегам