微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未能在“URL”上执行“createObjectURL”:

如何解决未能在“URL”上执行“createObjectURL”:

当我将原始数据传递给时,我遇到了同样的错误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


过去我们还可以createObjectURL()对 MediaStream 对象使用方法。规范和浏览器已经放弃了这种使用。 如果您需要将 MediaStream 设置为 HTMLMediaElement 的源,只需将MediaStream对象直接附加到srcObjectHTMLMediaElement 的属性,例如<video>元素。

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

但是,如果您需要使用MediaSource,BlobFile,您仍然需要创建一个blob://URLURL.createObjectURL()并将其分配给HTMLMediaElement.src.

在此处阅读更多详细信息:https ://developer.mozilla.org/en- US/docs/Web/API/HTMLMediaElement/srcObject

解决方法

在 Safari 中显示下方错误。

无法在“URL”上执行“createObjectURL”:找不到与提供的签名匹配的函数。

我的代码是:

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。