vue-video-player键盘控制实现快进退,音量加减
1、在包裹video的div中添加:@keyup="keyup($event)"<div class="video" @keyup="keyup($event)"><video-playerclass="video-player vjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"
·
1、在包裹video的div中添加:@keyup="keyup($event)"
<div class="video" @keyup="keyup($event)">
<video-player
class="video-player vjs-custom-skin"
ref="videoPlayer"
:playsinline="true"
:options="playerOptions"
/>
</div>
2、在data定义所需要的数据变量
data() {
return {
playerOptions: {
playbackRates: [0.7, 1.0, 1.5, 2.0], // 播放速度
autoplay: false, //如果true,浏览器准备好时开始回放。
muted: false, // 默认情况下将会消除任何音频。
loop: false, // 导致视频一结束就重新开始。
preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
language: 'zh-CN',
aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
sources: [
{
type: 'video/mp4', // 这里的种类支持很多种:基本视频格式、直播、流媒体等,具体可以参看git网址项目
src:
'视频网络链接', // url地址
},
],
poster: '封面图网络链接', // 你的封面地址
notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。
controlBar: {
timeDivider: true,
durationDisplay: true,
remainingTimeDisplay: false,
fullscreenToggle: true, // 全屏按钮
},
},
ops: {
vuescroll: {},
scrollPanel: {},
rail: {
keepShow: true,
},
bar: {
hoverStyle: true,
onlyShowBarOnScroll: false, //是否只有滚动的时候才显示滚动条
background: '#F5F5F5', //滚动条颜色
opacity: 0.5, //滚动条透明度
'overflow-x': 'hidden',
},
}
}
},
3、实现方法
keyup(key) {
console.log('videoPlayer', this.$refs.videoPlayer)
var vol = 0.1 //1代表100%音量,每次增减0.1
var time = 10 //单位秒,每次增减10秒
// 按向上键
if (key.keyCode == 38) {
this.$refs.videoPlayer.player.cache_.lastVolume !== 1
? (this.$refs.videoPlayer.player.cache_.lastVolume += vol)
: 1
this.$refs.videoPlayer.player.volume(
this.$refs.videoPlayer.player.cache_.lastVolume
)
}
// 按向下键
if (key.keyCode == 40) {
this.$refs.videoPlayer.player.cache_.lastVolume !== 0
? (this.$refs.videoPlayer.player.cache_.lastVolume -= vol)
: 1
this.$refs.videoPlayer.player.volume(
this.$refs.videoPlayer.player.cache_.lastVolume
)
}
// 按左键
if (key.keyCode == 37) {
this.$refs.videoPlayer.player.cache_.currentTime !== 0
? (this.$refs.videoPlayer.player.cache_.currentTime -= time)
: 1
this.$refs.videoPlayer.player.currentTime(
this.$refs.videoPlayer.player.cache_.currentTime
)
}
// 按右键
if (key.keyCode == 39) {
this.$refs.videoPlayer.player.cache_.currentTime !==
this.$refs.videoPlayer.player.cache_.duration
? (this.$refs.videoPlayer.player.cache_.currentTime += time)
: 1
this.$refs.videoPlayer.player.currentTime(
this.$refs.videoPlayer.player.cache_.currentTime
)
}
},
这样就能在vue项目中pc端实现键盘操作快进快退,音量调大小了;
ps:有一个弊端,就是必须鼠标选中视频区域才能实现这一效果,没选中视频区域则无法实现,至今未能解决,另外在全屏时可触发事件实现效果(移动端还需另写js)。如果有好的方法欢迎解答!
还有一种方法可移步我另一个笔记文章 vue项目视频实现键盘快进快退,音量调大小_唐屁屁-CSDN博客
如果觉得vue-video-player和h5 video不好用
可以看我另一个播放视频控件
vue引用DPlayer播放器_唐屁屁儿的博客-CSDN博客_dplayer集成vue
这个控件没有快进快退音量调节需要必须选中视频区域问题,个人觉得比vue-video-player和h5 video 这俩好用
更多推荐
已为社区贡献6条内容
所有评论(0)