前言
当视频播放过大,边看边加载时可以用数据流方式播放视频
可以使用 Blob 和 URL.createObjectURL() 方法来实现使用数据流播放视频。具体实现步骤如下:
一、获取视频数据流 从服务器获取视频数据流,可以使用 XMLHttpRequest 或 fetch 方法请求数据流并以 Blob 对象形式返回。
二、创建 URL 对象 使用 URL.createObjectURL() 方法创建一个 URL 对象,将 Blob 对象作为参数传入该方法。
三、将 URL 对象赋值给 video 标签的 src 属性 将创建的 URL 对象赋值给 video 标签的 src 属性即可实现使用数据流播放视频。 下面是一个使用数据流播放视频的示例代码:
<video id="myVideo" width="640" height="360" controls></video>
<script>
// 获取视频数据流
fetch('video.mp4')
.then(response => response.blob())
.then(blob => {
// 创建 URL 对象
const videoUrl = URL.createObjectURL(blob);
// 将 URL 对象赋值给 video 标签的 src 属性
const myVideo = document.getElementById('myVideo');
myVideo.src = videoUrl;
})
.catch(error => {
console.error('An error occurred:', error);
});
</script>
总结
在上面的代码中,首先使用 fetch 方法获取视频数据流并以 Blob 对象形式返回,然后使用 URL.createObjectURL() 方法创建一个 URL 对象,将 Blob 对象作为参数传入该方法。最后将创建的 URL 对象赋值给 video 标签的 src 属性即可实现使用数据流播放视频。