video总结

视频知识点
1、属性

poster:视频封面路径地址
例子:
	:poster="地址"

onpause:视频暂停触发方法
	例子:
		@pause="onPlayerPause()"
	
onplay:视频播放触发方法
	例子:
		@pause="onPlayerPlay()"
	
oncanplay:视频加载完成触发方法
	例子:
		@canplay="getTime()"

2、方法

//获取dom节点,	dom节点.play()可以控制视频播放
let player = this.$refs.videoPlayer;
player.play();

//获取视频时长
let video= this.$refs.video;
video.duration

注意:vue中在 mounted 中获取时长会出现NaN的情况,据传是因为视频还没加载完
*本人解决方式:使用 oncanplay 加载完成后触发函数(但是可能会先出现NaN然后在出现正常时间) *

例:

html :
/**
	外层有个v-for,这里就不展示了
*/
  <video
	style="display: none"
	width="100%"
	:poster="item.coverURL"
	controls
	@canplay="getTime()"
>
	<source :src="item.linkURL" type="video/mp4" />
	<source :src="item.linkURL" type="video/ogg" />
	<source :src="item.linkURL" type="video/webm" />
</video>

js :
/**
	这里直接获取dom节点,真实环境中不推荐这样直接操作dom
*/
getTime() {
let meansVideo = document.querySelectorAll(
	".means .content .Video video"
);
for (let i = 0; i < meansVideo.length; i++) {
	this.$set(
		this.meansData[i],
		"time",
		this.format(parseInt(meansVideo[i].duration))
	);
}
	this.isShowTime = true;
},

add0(m) {
  return m < 10 ? "0" + m : m;
},

format(time) {
  let s = time % 60;
  let m = parseInt((time / 60) % 60);
  let h = parseInt(parseInt(time / 60) / 60);
  let tmp;
  if (h == 0) {
    tmp = this.add0(m) + ":" + this.add0(s);
  } else {
    tmp = this.add0(h) + ":" + this.add0(m) + ":" + this.add0(s);
  }
  return tmp;
},

上传视频文件获取视频文件时长

var fileurl = URL.createObjectURL(file);
var audioElement = new Audio(fileurl);
	var duration;
audioElement.addEventListener("loadedmetadata", function (_event) {
	duration = audioElement.duration;
	console.log(parseInt(duration));//单位:秒
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值