Angular 未能执行';createObjectURL';在';URL';-角度:

Angular 未能执行';createObjectURL';在';URL';-角度:,angular,typescript,google-chrome,Angular,Typescript,Google Chrome,Chrome版本:版本78.0.3904.70(官方版本)(64位) 所以我知道URL.createObject URL自从Chrome71以来就被弃用了,但我现在才面临这个错误 下面是我使用URL.createObject的预加载媒体函数的一个片段 // Loads a file from the server into cache private loadFile(media: File) { console.log('Entered MediaModel loadFIle');

Chrome版本:版本78.0.3904.70(官方版本)(64位)

所以我知道URL.createObject URL自从Chrome71以来就被弃用了,但我现在才面临这个错误

下面是我使用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();
    });
}

我想我可以把它全部包装在一个try-catch块中,但我想媒体不会预加载

我读过的一些帖子/论坛建议使用
MediaStream
,但我不清楚应该替换或修改什么,这样不仅可以消除错误,而且可以保持功能相对不变


任何帮助都将不胜感激,如果您需要更多信息,请告诉我。提前感谢:)

我认为您需要首先创建blob,并且根据您拥有的数据类型,您需要指定正确的mime类型@镇治安官我以为我已经创建了一个blob,请查看编辑:)尝试:
media.blob=request.response
,然后你必须找到你对
media.blob.src
的引用,并将它们更改为
media.blob.srcbobject