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

新手上路,请多包涵

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

原文由 Hardik Mandankaa 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
1 个回答

当我将原始数据传递给 createObjectURL 时,我遇到了同样的错误:

 window.URL.createObjectURL(data)

它必须是 BlobFileMediaSource 对象,而不是数据本身。这对我有用:

 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


更新

过去,我们还可以对 MediaStream 对象使用 createObjectURL() 方法。这种用法已被规范和浏览器删除。

如果您需要将 MediaStream 设置为 HTMLMediaElement 的源,只需将 MediaStream 对象直接附加到 srcObject HTMLMediaElement 的属性,例如 <video>

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

However, if you need to work with MediaSource , Blob or File , you still have to create a blob:// URL with URL.createObjectURL() 并将其分配给 HTMLMediaElement.src

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

原文由 mimo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题