vue-video-player键盘控制实现快进退,音量加减

17 篇文章 0 订阅
3 篇文章 1 订阅

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 这俩好用

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值