H5/微信 Video标签移动端播放问题

一、禁止/阻止/取消默认的全屏播放

亲测: IOS和安卓均有效

html 复制代码
<video 
     x5-playsinline="true"
     playsinline="true"
     webkit-playsinline="true"
     x-webkit-airplay="true"
     x5-video-orientation="portraint"
 >
    <source :src="videoUrl" type="video/mp4">
</video>

注意: x5-video-player-type="h5" 这个参数不能用,用了的话安卓就失效了。

二、视频自动播放

H5页面:

  1. 需要在 video 标签中添加 mutedautoplay 属性
html 复制代码
<video 
 	 autoplay
	 muted
     x5-playsinline="true"
     playsinline="true"
     webkit-playsinline="true"
     x-webkit-airplay="true"
     x5-video-orientation="portraint"
 >
    <source :src="videoUrl" type="video/mp4">
</video>

注意: 自动播放,会因为 muted 而静音。

微信:

微信里面的自动播放只能用于IOS,不能用于安卓(目前来说)

IOS微信自动播放方法: 通过使用 jssdkWeixinJSBridgeReady 播放

下面是VUE代码

HTML部分

html 复制代码
<video
  ref="videoRef"
  :src=""
  muted
  autoplay
  x5-playsinline="true"
  playsinline="true"
  webkit-playsinline="true"
  x-webkit-airplay="true"
  x5-video-orientation="portraint"
></video>

JS部分

javascript 复制代码
onMounted(() => {
	if (WeixinJSBridge) {
		doPlay();
	} else {
		document.addEventListener(
			"WeixinJSBridgeReady",
			function () {
				doPlay();
			},
			false
		);
	}
});

// 通过微信桥接开始播放
function doPlay() {
  WeixinJSBridge.invoke("getNetworkType", {}, function (e) {
    let videoHtml = videoRef.value;
    videoHtml.play();
  });
}

安卓微信自动播放方法:

  1. 通过触摸屏幕开始播放(来达到自动播放效果)
  2. 开启 video 标签的 controls,通过做个蒙版,点击诱导的方式
  3. 据说可以通过 Tcplayer 腾讯云点播(未测试)

下面是VUE代码

HTML部分

html 复制代码
<video
  ref="videoRef"
  :src=""
  muted
  autoplay
  x5-playsinline="true"
  playsinline="true"
  webkit-playsinline="true"
  x-webkit-airplay="true"
  x5-video-orientation="portraint"
  id="vdHtml"
></video>
html 复制代码
<video
  ref="videoRef"
  :src=""
  muted
  autoplay
  x5-playsinline="true"
  playsinline="true"
  webkit-playsinline="true"
  x-webkit-airplay="true"
  x5-video-orientation="portraint"
></video>

JS部分

javascript 复制代码
onMounted(() => {
	let ua = navigator.userAgent;
	  let isAndroid = ua.indexOf("Android") > -1 || ua.indexOf("Linux") > -1;
	  let isWeixin = ua.indexOf("MicroMessenger") > 0;
	  // 安卓触摸屏幕后播放
	  if (isAndroid && isWeixin) {
	    document.addEventListener(
	      "touchstart",
	      function () {
	        let video = document.getElementById("vdHtml");
	        if (video) video.play();
	      },
	      false
	    );
	  }
});
相关推荐
neter.asia2 天前
小程序获取微信运动步数
微信·小程序·apache
Damon小智4 天前
微信小程序-Docker+Nginx环境配置业务域名验证文件
运维·nginx·docker·微信·容器·小程序
合洁科技电子净化工程9 天前
合洁科技:晶圆洁净车间的净化空调系统和一般空调系统有何区别
经验分享·科技·其他·微信
夏日米米茶9 天前
让iPhone自带浏览器Safari能自动播放Video视频的办法
iphone·video·autoplay
陈思杰系统思考Jason10 天前
系统思考—因果关系
百度·微信·微信公众平台·新浪微博·微信开放平台
Cc_Debugger12 天前
微信原生小程序自定义封装组件(以导航navbar为例)
微信·小程序
WHY666614 天前
Web应用微信登录/绑定微信开发流程
前端·后端·微信
机智的奎哥14 天前
微信小程序实现长按录音,点击播放等功能,CSS实现语音录制动画效果
前端·javascript·css·微信·微信小程序·小程序
drebander17 天前
Kotlin 协程与异步编程
开发语言·微信·kotlin