Подтвердить что ты не робот

Не удалось выполнить 'createObjectURL' в 'URL':

Ошибка отображения ниже в Safari.

Не удалось выполнить createObjectURL для URL: не найдена функция, соответствующая предоставленной подписи.

Мой код:

function createObjectURL(object) {
    return (window.URL) ? window.URL.createObjectURL(object) : window.webkitURL.createObjectURL(object);
}

Это мой код для изображения:

function myUploadOnChangeFunction() { 
    if (this.files.length) { 
       for (var i in this.files) { 
           if (this.files.hasOwnProperty(i)) { 
              var src = createObjectURL(this.files[i]); 
              var image = new Image(); 
              image.src = src; 
              imagSRC = src; 
              $('#img').attr('src', src); 
            }
       }           
   } 
} 
4b9b3361

Ответ 1

UPDATE

Не используйте метод createObjectURL(), пока браузеры отключают его поддержку. Просто прикрепите объект MediaStream непосредственно к свойству srcObject HTMLMediaElement, например. <video> элемент.

const mediaStream = new MediaStream();
const video = document.getElementById('video-player');
video.srcObject = mediaStream;

Однако, если вам нужно работать с MediaSource, Blob или File, вы должны создать URL-адрес с помощью URL.createObjectURL() и назначить его для HTMLMediaElement.src.

Подробнее читайте здесь: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject


Старый ответ

У меня возникла та же ошибка, когда я передал createObjectURL необработанные данные:

window.URL.createObjectURL(data)

Это должен быть объект Blob, File или MediaSource, а не сами данные. Это сработало для меня:

var binaryData = [];
binaryData.push(data);
window.URL.createObjectURL(new Blob(binaryData, {type: "application/zip"}))

Проверьте также MDN для получения дополнительной информации: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL

Ответ 2

Эта ошибка вызвана тем, что функция createObjectURL устарела для Google Chrome

Я изменил это:

video.src=vendorUrl.createObjectURL(stream);
video.play();

к этому:

video.srcObject=stream;
video.play();

Это сработало для меня.

Ответ 3

Мой код был сломан, потому что я использовал устаревшую технику. Раньше было так:

video.src = window.URL.createObjectURL(localMediaStream);
video.play();

Затем я заменил это следующим:

video.srcObject = localMediaStream;
video.play();

Это сработало прекрасно.

ОБНОВЛЕНИЕ: Недавно localMediaStream устарела и заменена на MediaStream. Последний код выглядит следующим образом:

video.srcObject = MediaStream;

Ссылки:

  1. Устаревшая техника: https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL
  2. Современная устаревшая техника: https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
  3. Современная техника: https://developer.mozilla.org/en-US/docs/Web/API/MediaStream

Ответ 4

У меня была такая же ошибка для MediaStream. Решением является поток srcObject.

Из документов:

Важно: если у вас все еще есть код, который использует createObjectURL() для Прикрепите потоки к медиа-элементам, вам нужно обновить код просто установите srcObject для MediaStream напрямую.

Ответ 6

Проблема в том, что ключи, указанные в цикле, не относятся к индексу файла.

for (var i in this.files) {
    console.log(i);
}

Вывод вышеуказанного кода:

0
length
item

Но ожидалось:

0
1
2
etc...

Затем возникает ошибка, когда браузер пытается выполнить, например:

window.URL.createObjectURL(this.files["length"])

Я предлагаю реализацию на основе следующего кода:

var files = this.files;
for (var i = 0; i < files.length; i++) {
    var file = files[i],
        src = (window.URL || window.webkitURL).createObjectURL(file);
    ...
}

Я надеюсь, что это может помочь кому-то.

Привет!

Ответ 7

Если вы используете ajax, можно добавить опции xhrFields: { responseType: 'blob' }:

$.ajax({
  url: 'yourURL',
  type: 'POST',
  data: yourData,
  xhrFields: { responseType: 'blob' },
  success: function (data, textStatus, jqXHR) {
    let src = window.URL.createObjectURL(data);
  }
});

Ответ 8

Я исправил это, загрузив последнюю версию с GgitHub GitHub url