vue开发移动端使用video.js播放视频


使用html video标签在不同手机上视频播放器的样式和交互略有不同,所以采用Video.js视频播放插件来统一样式和交互。

Video.js是一款web视频播放器,支持html5和flash两种播放方式。更有自定义皮肤,插件,组件,语言还有丰富的选项配置。

安装

npm i -S video.js

引入

import 'video.js/dist/video-js.css'
import videojs from 'video.js'

文档

HTML代码

<video id="my-video" class="video-js vjs-default-skin" controls preload="none" x5-playsinline="" webkit-playsinline="" playsinline="" poster="" x-webkit-airplay="allow">
	<source src="">
</video>

css自定义播放按钮

在这里插入图片描述

css居中播放按钮

.vjs-big-play-button{
	left:50% !important;
	top: 50% !important;
	margin-top: -1em ;
	margin-left: -1.5em ;
}

css设置简洁播放按钮

.video-js .vjs-big-play-button {
  border:unset!important;
  background-color:unset!important;
}
.video-js .vjs-big-play-button .vjs-icon-placeholder:before {
  font-size: 45px;
}

css设置海报占据整个视频空间

.vjs-poster {
  background-size: 100% 100%!important;
}

js使用设置

data () {
	return {
		myPlayer: '' // 视频播放器实例
	}
}

因为地址是接口异步获取

const videoUrl = '视频地址url'
const myPlayerOptions = {
     bigPlayButton: true, // 是否显示播放按钮(这个播放按钮默认会再左上方,需用CSS设置居中)
     textTrackDisplay: true,
     posterImage: true,
     errorDisplay: true,
     controlBar: true,
     autoplay:false, // 不设置自动播放,若未true,则无法看到视频海报图片
     controls: true,
}
// 此处等待UI渲染进程结束,再执行js逻辑线程
setTimeout(() => {
	this.myPlayer = videojs('my-video', myPlayerOptions)
	this.player.src(this.brandDetail.vedioUrl)
	this.player.load(this.brandDetail.vedioUrl)
}, 500)

videojs设置中文

在 mounted 中设置一下中文,不然出错时提示英文不够友好

videojs.addLanguage('zh-CN', {
	"You aborted the media playback": "视频播放被终止",
	"A network error caused the media download to fail part-way.": "网络错误导致视频下载中途失败。",
	"The media could not be loaded, either because the server or network failed or because the format is not supported.": "视频因格式不支持或者服务器或网络的问题无法加载。",
	"The media playback was aborted due to a corruption problem or because the media used features your browser did not support.": "由于视频文件损坏或是该视频使用了你的浏览器不支持的功能,播放终止。",
	"No compatible source was found for this media.": "无法找到此视频兼容的源。",
});
### 

销毁视频播放器实例

单页应用,实例化后,将不会再次实例化,所以需要在当前页面销毁时,销毁当前实例化视频对象

destroyde () {
	this.myPlayer.dispose()
}
Vue3中使用Video.js播放视频通常需要以下几个步骤: 1. **安装依赖**: 首先,你需要通过npm或yarn安装Video.js库及其插件。在项目目录下运行: ```bash npm install video.js videojs-contrib-hls videojs-contrib-media-source @vueuse/core # 或者使用yarn yarn add video.js videojs-contrib-hls videojs-contrib-media-source @vueuse/core ``` 2. **引入并配置**: 在`main.js`或`.env.development.js`等全局文件中,导入Video.js,并创建一个实例: ```javascript import Video from 'video.js/dist/video-js.min.css'; import Vue from 'vue'; import { useVideoPlayer } from '@vueuse/core'; import videoConfig from './video-config'; Vue.use(Video); const video = document.createElement('video'); video.id = 'my-video-player'; document.body.appendChild(video); const player = useVideoPlayer(video, videoConfig); ``` 其中`video-config`是一个对象,包含Video.js的初始设置,如源URL、播放控制等。 3. **在组件中使用**: 在需要显示视频的组件里,你可以使用`player`对象来控制视频播放: ```html <template> <div id="player-container"> <button @click="playPause">Play/Pause</button> <!-- ...其他HTML元素... --> </div> </template> <script> export default { setup() { return { playPause: () => player.play().then(() => player.pause()), // ...其他生命周期钩子和数据... }; }, }; </script> ``` 4. **注意点**: - 指定好视频源(HLS、MP4等),如果使用直播流可能还需要使用对应的插件支持(如`videojs-contrib-hls`)。 - 视频加载和播放可能需要处理一些异常情况,比如网络问题导致的错误。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

定栓

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值