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'});