Не удалось выполнить 'createObjectURL' для 'URL' - Angular: - PullRequest
0 голосов
/ 01 ноября 2019

Chrome Версия: версия 78.0.3904.70 (Официальная сборка) (64-разрядная версия)

Итак, я знаю, что URL.createObject устарел с Chrome 71, но только сейчас сталкиваюсь с ошибкой.

Ниже приведен фрагмент моей функции предварительной загрузки мультимедиа, где я использую URL.createObject

// Loads a file from the server into cache
private loadFile(media: File) {
  console.log('Entered MediaModel loadFIle');

    return new Promise((resolve, reject) => {
        var error: boolean = false;

        var request = new XMLHttpRequest();
        request.open('GET', media.url);
        request.responseType = 'blob';

        // When the request loads, check whether it was successful
        request.onload = () => {
            if (request.status === 200) {
                resolve(request.response);
            } else {
              // If it fails, reject the promise with a error message
              reject(Error('Media didn\'t load successfully; error code:' + request.statusText));
            }
        };


        // If an error occurs
        request.onerror = () => {
            reject(Error('There was a network error.'));
        };


        request.onreadystatechange = () => {
            if (request.readyState === 4) {

                media.blob = URL.createObjectURL(request.response);
                media.sanitizedBlob = this.sanitizer.bypassSecurityTrustUrl(URL.createObjectURL(request.response));

                console.log(media);
                console.log(media.blob);
                console.log(media.sanitizedBlob);
            }
        };


        // Every tick of the progress loader
        request.onprogress = data => {
            media.loadProgress = parseInt((data.loaded / data.total * 100).toFixed(0));
        }

        // Send the request
        request.send();
    });
}

Screenshot of console.logs

Я думаля мог бы просто обернуть все это в блок try try, но тогда я думаю, что медиа не будет предварительно загружаться.

Несколько прочитанных мной постов / форумов предлагают использовать MediaStream, но я простонеясно, что заменить или изменить, чтобы не только устранить ошибку, но и сохранить функциональность относительно неизменной.

Любая помощь будет принята с благодарностью, и если вам нужна дополнительная информация, просто дайте мне знать. Заранее спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...