Angular 未能执行';createObjectURL';在';URL';-角度:
Chrome版本:版本78.0.3904.70(官方版本)(64位) 所以我知道URL.createObject URL自从Chrome71以来就被弃用了,但我现在才面临这个错误 下面是我使用URL.createObject的预加载媒体函数的一个片段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');
// 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