h5使用video标签播放视频

html区域

<div class="video_file">
	<button id="video_btn" >播放/暂停</button>
	<img src="images/video-img.jpg" id="video_img" >
	<video name="media" id="video" preload="auto" >
		<source src="https://static.appstore.czfw.cn/video-jiayou2.mp4" type="video/mp4">
		<source src="https://static.appstore.czfw.cn/video-jiayou.webm" type="video/webm">
		<source src="https://static.appstore.czfw.cn/video-jiayou.Ogg" type="video/ogg">
		您的浏览器暂不支持视频播放
	</video>
</div>

css 区域

.video_file {
	position: relative;
	display: block;
	margin: 0 auto;
	width: 100%;
	height: 44vw;
}

.video_file button {
	background-image: url(http://static.kaiba315.com/video_bg_grey.png);
	background-color: transparent;
	background-size: 100%;
	position: absolute;
	left: 50%;
	top: 50%;
	width: 50px;
	height: 50px;
	margin-left: -25px;
	margin-top: -25px;
	text-indent: -9999px;
	z-index:40;
	border: none;
}

.video_file #video_img,
.video_file video {
	width: 100%;
	height: 44vw;
}

.video_file #video_img {
	position: absolute;
	left: 0;
	top: 0;
}

#video_img,#video_btn{opacity: 1;}
#video_img.displayno,#video_btn.displayno{
         opacity: 0;
}   
.video_file video.hide{
  width:1px;
  height:1px;
}

js 区域

		var myVideoBtn =document.getElementById("video_btn");
		var myVideo =document.getElementById("video");
		var myVideoImg =document.getElementById("video_img");
	function playVideo(obj) {
		if (myVideo.paused) {
			myVideo.play();
			$('#video_img').addClass('displayno');
			$('#video_btn').addClass('displayno');
			$("video").removeClass("hide");
		}
		else {
			myVideo.pause();
			$('#video_img').removeClass('displayno');
			$('#video_btn').removeClass('displayno');
			$("video").addClass("hide");
		}
	}
	myVideo.addEventListener("pause",function(){
		$('#video_img').removeClass('displayno');
		$('#video_btn').removeClass('displayno');
		$("video").addClass("hide");
	});
	$('.video_file').on('click',function(){
		playVideo(myVideo)
	})
	
	

有遮罩层存在时,视频层级最高,遮罩层无法遮挡问题

function shareAct(){
		$(".popUpBox").show();
		myVideo.pause();
		$('#video_img').removeClass('displayno');
		$('#video_btn').removeClass('displayno'); 
		$("video").hide();
	}
		//分享蒙版 关闭
    $(".popUpBox").click(function () {
    	$(this).hide();
    });
	

属性说明

muted 静音播放(iphone可以,安卓不行)
poster 封面图

方法说明

<!-- 音量控制 -->
  <video src="test.mp4" poster="poster.jpg" controls width="400" height="300" id="_volume"></video>
<script>
    var video = document.getElementById('_volume')
    video.volume = 2 // 取值范围:0 到 1,0 是静音,0.5 是一半的音量,1 是最大音量(默认值)
  </script>
  
    <!-- 播放时间控制 -->
  <video src="test.mp4" poster="poster.jpg" controls width="400" height="300" id="_time"></video>
  <script>
    var video = document.getElementById('_time')
    console.log(video.currentTime)  // 视频当前正在播放的时间(单位:s),进度条拖到哪就显示当前的时间
    video.currentTime = 60  // 默认从60秒处开始播放
  </script>
<!-- 播放地址切换 (常见于切换超清  高清 流畅,不同画质的视频地址不同) -->
  <video src="test.mp4" controls autoplay width="400" height="300" id="_src"></video>
  <script>
    var video = document.getElementById('_src')
    console.log(video.src)     // http://127.0.0.1:8001/test.mp4   绝对地址,DOM 中是相对地址
    // video.src = 'test-2.mp4'   // 直接替换掉了原来的视频src
    setTimeout(() => {
      video.src = 'test-2.mp4'  // 播放到第 30s 的时候,自动切换视频
    }, 30000)
  </script>
  
  <video src="test.mp4" controls width="400" height="300" id="video"></video>
  
  <script>
    var video = document.getElementById('video')

    // 1、loadstart:视频查找。当浏览器开始寻找指定的音频/视频时触发,也就是当加载过程开始时
    video.addEventListener('loadstart', function(e) {
      console.log('提示视频的元数据已加载')
      console.log(e)
      console.log(video.duration)            // NaN
    })
	
	// 6、canplay:可播放监听。当浏览器能够开始播放指定的音频/视频时触发
    video.addEventListener('canplay', function(e) {
      console.log('提示该视频已准备好开始播放')
      console.log(e)
    })
 // 8、play:播放监听
    video.addEventListener('play', function(e) {
      console.log('提示该视频正在播放中')
      console.log(e)
    })

    // 9、pause:暂停监听
    video.addEventListener('pause', function(e) {
      console.log('暂停播放')
      console.log(e)
    })
	// 12、waiting:视频加载等待。当视频由于需要缓冲下一帧而停止,等待时触发
    video.addEventListener('waiting', function(e) {
      console.log('视频加载等待')
      console.log(e)
    })

    // 13、playing:当视频在已因缓冲而暂停或停止后已就绪时触发
    video.addEventListener('playing', function(e) {
      console.log('playing')
      console.log(e)
    })

    // 14、timeupdate:目前的播放位置已更改时,播放时间更新
    video.addEventListener('timeupdate', function(e) {
      console.log('timeupdate')
      console.log(e)
    })

    // 15、ended:播放结束
    video.addEventListener('ended', function(e) {
      console.log('视频播放完了')
      console.log(e)
    })

    // 16、error:播放错误
    video.addEventListener('error', function(e) {
      console.log('视频出错了')
      console.log(e)
    })

    // 17、volumechange:当音量更改时
    video.addEventListener('volumechange', function(e) {
      console.log('volumechange')
      console.log(e)
    })

插件播放 (zyMedia —— 一个轻量级媒体播放器) https://github.com/ireaderlab/zyMedia

转载于:https://my.oschina.net/u/2393989/blog/3048942

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值