Video.js的使用

Video.js是一款优秀的HTML5视频播放器库,与另一个主流的视频播放器库Shaka Player相比,它在PC端更加流行,也更适用于高度定制化的场景。不过Shaka Player更适合移动端和低带宽场景,小伙伴们在选择库的时候可以根据自己的场景。这里分享一些Video.js使用的经验。

背景:Nuxt 3.3.3,video.js@8.0.4

入门

安装

npm i video.js

写一个公共组件

<template>
	<video ref="videoPlayer" class="video-js" :id="playerId"></video>
</template>

<script setup>
	import videojs from 'video.js';
	import {
		getCurrentInstance,
	} from 'vue';
	const {
		proxy
	} = getCurrentInstance();
	const props = defineProps({
		sources: {
			type: Array,
			default () {
				return [];
			}
		},
		autoplay: {
			type: [Boolean, String],
			default: true,
		},
		playerId: {
			type: String,
			required: true, // 必须提供id
		},
		muted: {
			type: Boolean,
			default: false,
		}
	})

	let videoOptions = {
		'autoplay': props.autoplay, // 自动播放
		'sources': props.sources,
		'loop': true, // 循环
		'muted': props.muted,
		'preload': 'metadata', // 预加载内容
	}

    const player = ref(null);
	onMounted(() => {
		player.value = videojs(proxy.$refs.videoPlayer, videoOptions, () => {
			//player.value.log('onPlayerReady');
		});
	})

	onBeforeUnmount(() => {
		if (player.value) {
			player.value.dispose();
		}
	})

在使用该组件时,通过sources传入视频地址即可。

需要注意的是,playerId是必传的,后续关于视频的操作都需要用到playerId。

获取视频时长

假设template有这个组件

<video-player :sources="sources" :player-id="playerId" />

可以这样写获取视频时长duration,单位秒。

<script setup>
	import videojs from 'video.js';
	const playerId = "playerId ";
    // 视频资源
	const sources = [{
		src: URL.createObjectURL(fileList.value),
		type: 'video/mp4'
	}];
    // 需要在onMounted执行
	onMounted(() => {
		const player = videojs(playerId);
		player.on('loadedmetadata', () => {
			const duration = player.duration();
			console.log(duration);
		})
	})
</script>

video.js 是一个开源的 HTML5 视频播放器库,用于在网页上嵌入和控制视频播放。 要使用 video.js,首先需要引入 video.js 的库文件。可以通过以下方式在 HTML 页面中添加依赖: ```html <link href="https://vjs.zencdn.net/7.15.4/video-js.css" rel="stylesheet" /> <script src="https://vjs.zencdn.net/7.15.4/video.min.js"></script> ``` 在以上代码中,`video-js.css` 是 video.js 的样式文件,`video.min.js` 是 video.js 的主要库文件。 接下来,在 HTML 页面中添加一个用于显示视频的 `<video>` 标签,并为其指定一个唯一的 ID。 ```html <video id="my-video" class="video-js vjs-default-skin" controls preload="auto" width="640" height="264"> <source src="path/to/your/video.mp4" type="video/mp4" /> </video> ``` 以上代码中的 `src` 属性是视频文件的路径,可以根据实际情况进行修改。 最后,在 JavaScript 文件中初始化 video.js,并为其指定要控制的视频标签。 ```javascript var player = videojs('my-video'); ``` 通过以上代码,你已经成功初始化了一个 video.js 播放器,并绑定了指定的视频标签。你可以通过 `player` 对象来控制视频的播放、暂停等功能。 除了基本的播放器控制外,video.js 还提供了丰富的插件和扩展功能,可以根据需要进行进一步的定制和配置。 这只是 video.js 的基本使用示例,你可以参考官方文档以及相关示例来了解更多功能和用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值