网站首页 > 技术文章 正文
我们昨天看了 blob 协议,那么具体我们在播放视频的时候怎么使用 blob 协议进行播放,把视频流转为 blob 协议,然后放到 video 中进行播放。
今天我们就来研究下怎么实现。
以 blob URL 加载网络视频
现在我们有一个网络视频的地址,怎么才能才能将这个视频地址变为 blob URL 形式呢?
实现思路是要先拿到存储这个视频原始数据的 Blob 对象。
但是不同于 input 上传可以直接拿到 File 对象,我们只有一个网络地址。
我们平时请求接口我们可以使用 xhr或者 fetch。请求一个服务端地址可以返回我们相应的数据。
我们这里就要用 xhr 或者 fetch 去请求一个图片或者视频地址。不过我没你这里要注意我们返回视频的数据格式要设置正确。
也就是 responseType 要设置正确,这样才能拿到我们想要的格式数据。
示例代码
const xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.responseType = 'blob';
xhr.onload = function() {
// todo
}
xhr.send();
这里用 xhr 请求视频的时候可能会遇到跨域问题,所以要设置跨域资源共享(CORS)来解决。
这样我们返回就是一个 Blob 对象。然后通过
const src = URL.createObjectURL(xhr.response);
video.src = src;
这样用调试工具看视频标签的 src 属性已经变成了一个 blob URL。
- 上一篇: 今天就带兄弟们了解一下MyBatis中的所有动态SQL
- 下一篇: MyBatis的10种用法
猜你喜欢
- 2024-11-20 抖音 Android 性能优化系列:启动优化实践
- 2024-11-20 Restic设计原理
- 2024-11-20 前端必读榜——如何在JavaScript中用SpreadJS导入/导出Excel文件
- 2024-11-20 Axios API详细介绍及使用
- 2024-11-20 镜像仓库registry命令行启动,垃圾回收和服务监听我全都要
- 2024-11-20 ElasticSearch知识day04
- 2024-11-20 详解Oracle 11g如何快速定位到lobsegment、lobindex对应的表
- 2024-11-20 前端必读:如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
- 2024-11-20 前端文件下载的几种方式
- 2024-11-20 JavaScript奇淫技巧:20行代码,实现屏幕录像
- 标签列表
-
- content-disposition (47)
- nth-child (56)
- math.pow (44)
- 原型和原型链 (63)
- canvas mdn (36)
- css @media (49)
- promise mdn (39)
- readasdataurl (52)
- if-modified-since (49)
- css ::after (50)
- border-image-slice (40)
- flex mdn (37)
- .join (41)
- function.apply (60)
- input type number (64)
- weakmap (62)
- js arguments (45)
- js delete方法 (61)
- blob type (44)
- math.max.apply (51)
- js (44)
- firefox 3 (47)
- cssbox-sizing (52)
- js删除 (49)
- js for continue (56)
- 最新留言
-