适用window.URL.createObjectURL(Object obj)时出现的Not allowed to load local resource错误

window.URL.createObjectURL(Object obj);是用来将javascript对象转化为url然后在页面上调用的一个方法

其典型的使用方法有:

    var fileObj=document.getElementById("file");
    // fileObj.files[0]代表文件选择框选择的第一个文件
    var src = window.URL.createObjectURL(fileObj.files[0]);
    var img = document.createElement('img');
    img.src = src;
    document.body.appendChild(img);

这段代码可以将选中的本地图片通过设置<img>标签的src属性,显示在当前页面上。

而且对于支持<video>标签的html5,可以读取本地的视频文件,然后生成对应的ur并l设置为<video>的src属性的值,这样就可以将视频在该video标签内播放。

当然,我们也可以在服务器端下载视频对应的Blob二进制数据块,然后创建url设置为<video>的src属性的值,可以在该标签内播放。

同时,这个方法也可以为WebRTC的视频功能服务,在Client端Capture的视频流MediaStream一样可以使用window.URL.createObjectURL创建url然后设置为video的src实现视频流的播放。

但是,我在使用mediaSource对象创建url时,出现错误,没有办法创建对应的对象并传给video标签的src

错误的详细信息是:

Not allowed to load local resource: blob:null/db1d4db7-8dc5-483b-ba3c-03ec1616427a

对应的语句是:

    var oSourceBuffer, oMediaSource = new MediaSource();
    var url = window.URL.createObjectURL(oMediaSource);
    video.src = url;
但是仔细检查并没有发现什么问题

可是另一个服务器中部署的项目中有类似的使用方式的没有问题的

然后突然醒悟,应为这是一个demo页面,所以是直接在本地用浏览器打开的,而不是部署在服务器上然后进行访问的

然后打开服务器,部署在项目根文件夹,一访问,错误消失

所以, 这个问题在此处很明显便是因为没有部署在服务器中,所以没有办法根据该页面的访问域名确定一个相对url,也就是说在blob后面本该是网址的地方是"null"

当然这个错误也可能有其他原因造成,但是当没有使用错误的情况下,应当就是这个问题。



  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值