js移动端视频全屏适配无黑边

就是像标题说的那样,视频适配机型,无黑边!!!

这段针对于视频中间停一停,点击后再继续的那种,
如果不停直接把相关代码删掉就好

话不多说,直接上代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1">
		<title></title>
		<!-- 以下这两行必写 -->
		<script src="//game.gtimg.cn/images/js/mmdPlugin/mmd-plugin.min.1.0.2.js" charset="utf-8"></script>
		<script src="//game.gtimg.cn/images/js/mmdVideoPlayer/mmd.videoplayer.min.1.0.1.js" charset="utf-8"></script>
	</head>
	<body>
		<div class="div_video" view-mode="h" view-rotation="auto" view-scale="noborder" view-width="1334"
		 view-height="750" view-align="">
			<div style="position: absolute;">
				<video id="video" style="display:none;"></video>
			</div>
		</div>
		<script>
			//设置视频的路径(必写)
			var src = '1.mp4';
			//设置视频中间答题点击的选项,点击的时候判断是选择的哪个选项(不答题可不写)
			var select_type1 = null;
			var select_type2 = null;
			//设置视频答题时停和重复的时间点(不停可不写)
			var time1_end = 25;
			var time1_start = 25.72 + 0.5;
			var time1_show = 24;
			var time2_end = 167.56 - 0.5;
			var time2_start = 150.16 + 0.5;
			var time2_show = 149;
			//定义视频组件(必写)
			var videoPlayer = null;
			//获取几个按钮(没有可不写)
			var video = document.getElementById("video");
			var startbtn = document.getElementById("startbtn");
			var replaybtn = document.getElementById("replaybtn");
			var sharebtn = document.getElementById("sharebtn");
			var btn1 = document.getElementById("btn1");
			var btn2 = document.getElementById("btn2");
			var btn3 = document.getElementById("btn3");
			var btn4 = document.getElementById("btn4");
			var btns = document.getElementById("btns");
			var sharemask = document.getElementById("sharemask");
			var music = document.getElementById("music");
			
			//创建视频组件
			function createPlayer() {
				videoPlayer = new MMD.VideoPlayer({
					videoElement: document.getElementById('video'), //[必填],video元素;
					src: src, //[必填],video src;
					loop: false, //[可选],是否循环,默认false,true为循环;
					muted: false, //[可选],是否静音,默认false,IOS下只有IOS10生效,安卓生效;
					poster: '', //[可选],video默认图片;
					tryMultipleVideoPlayAtTheSameTime: false, //[可选],尝试同时播放多个视频,默认false;
					timesParam: [{
							name: 'time1_end',
							time: time1_end
						},
						{
							name: 'time1_show',
							time: time1_show
						},
						{
							name: 'time2_end',
							time: time2_end
						},
						{
							name: 'time2_show',
							time: time2_show
						},
			
					], //[可选],video currenttime时间点;
					onTimes: function(name) {
						if (!select_type1 && name === 'time1_show') {
							// video.volume = 0;
							btn1.style.display = "block";
							btn2.style.display = "block";
						}
						if (!select_type1 && name === 'time1_end') {
							btn1.style.display = "block";
							btn2.style.display = "block";
							//到达该答题的时间点,开始在该时间点左右循环
							videoPlayer.currentTimeAndPlay = time1_start;
							console.log("循环1:" + select_type1);
			
						}
						if (!select_type2 && name === 'time2_show') {
							// video.volume = 0;
							btn3.style.display = "block";
							btn4.style.display = "block";
						}
						if (!select_type2 && name === 'time2_end') {
			
							btn3.style.display = "block";
							btn4.style.display = "block";
			
							console.log("循环2");
							videoPlayer.currentTimeAndPlay = time2_start;
						}
						console.log(name)
						//或者可以用switch case
						// switch (name) {
						// 	case 'time1_end':
						// 		break;
						// }
					}, //[可选],video currenttime回调;
					onStart: function() {
						console.log('video start');
					}, //[可选],video第一个画面出现回调;
					onEnd: function() {
						console.log('video end');
					} //[可选],video播放完成回调;
				});
				
			}
			createPlayer();
			
			//当isVideoCanAutoPlay属性为true时,则代表允许自动播放;
			//false时,则需要通过用户点击才能播放视频;
			if(videoPlayer.isVideoCanAutoPlay)
			{
				videoPlayer.play();
			}    
			else
			{        
				//click to play;
				//开始按钮,点击开始
				var btn = document.getElementById('startPlay');
			
				btn.style.display = 'block';
				btn.addEventListener('click', function(e) {
					btn.style.display = 'none';
					videoPlayer.play();
				});
			} 
			
			
			
		
			function isIphoneX() {
				return /iphone/gi.test(navigator.userAgent) && (screen.height == 812 && screen.width == 375)
			}
			
			function isIphone() {
				return /iphone/gi.test(navigator.userAgent)
			}
			var is_weixin = (function() {
				return navigator.userAgent.toLowerCase().indexOf('micromessenger') !== -1
			})
			if (is_weixin) {
				document.getElementById("video").setAttribute("x5-video-player-type", "h5")
				document.getElementById("video").setAttribute("x5-video-player-fullscreen", "true")
			}
			
			//横竖屏
			
			function hengshuping() {
				if (window.orientation == 180 || window.orientation == 0) {
					// alert("竖屏状态!")
					//tipmask为横屏观看更佳的提示
					var tipmask = document.getElementById("tipmask");
					tipmask.style.display = "none";
				}
				if (window.orientation == 90 || window.orientation == -90) {
					// alert("横屏状态!")
					var tipmask = document.getElementById("tipmask");
					tipmask.style.display = "block";
					document.getElementById("video").style.width = "100%"
				}
			}
			hengshuping();
			window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", hengshuping, false);
			
			
			video.onended = function() {
				console.log("视频结束");
			};
			
			
			//手指滑动时阻止浏览器默认行为(屏幕滑动)
			document.addEventListener(
				'touchmove',
				function(event) {
					event.preventDefault();
				}, {
					passive: false
				}
			);
			// update();
			
			
			
			var answer = [];
			addlistners();//答题的选项的点击函数
			function addlistners() {
				video = document.getElementById("video");
				btn1.addEventListener("touchstart", function() {
					videoPlayer.currentTimeAndPlay = time1_end;
					select_type1 = 1;
					console.log("touch:" + select_type1);
					btn1.style.display = "none";
					btn2.style.display = "none";
					answer.push(select_type1);
					//video.onclick = null;
				})
				btn2.addEventListener("touchstart", function() {
					videoPlayer.currentTimeAndPlay = time1_end;
					select_type1 = 2;
					btn1.style.display = "none";
					btn2.style.display = "none";
					answer.push(select_type1);
					//video.onclick = null;
				})
				btn3.addEventListener("touchstart", function() {
					videoPlayer.currentTimeAndPlay = time2_end;
					select_type2 = 3;
					btn3.style.display = "none";
					btn4.style.display = "none";
					answer.push(select_type2);
			
			
					//video.onclick = null;
				})
				btn4.addEventListener("touchstart", function() {
					videoPlayer.currentTimeAndPlay = time2_end;
					select_type2 = 4;
					btn3.style.display = "none";
					btn4.style.display = "none";
					answer.push(select_type2);
			
					//video.onclick = null;
				})
			}
			
			// video.addEventListener('timeupdate', function (e) {
			//     console.log(video.currentTime) // 当前播放的进度
			//
			// })
			// function update() {
			//     requestAnimationFrame(update);
			//
			// }
			
			
		</script>
	</body>
</html>

官方文档:https://tgideas.qq.com/doc/frontend/component/m/mmd.html

最后,如果循环在安卓手机上有问题,建议改成到需要停的位置就用暂停pause();
改完后记得要用没测过的安卓手机测试,或者换个微信号,因为有的缓存清不掉(试过设置里清除和微信存储空间清缓存)
苹果手机目前没发现什么问题

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值