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
	    );
	  }
});
相关推荐
尘浮生3 天前
Java项目实战II基于微信小程序的新闻资讯平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·微信·微信小程序·小程序
liulanba3 天前
Kotlin的data class
前端·微信·kotlin
尘浮生5 天前
Java项目实战II基于Spring Boot的工作流程管理系统设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·微信·微信小程序·小程序
尘浮生5 天前
Java项目实战II基于微信小程序的课堂助手(开发文档+数据库+源码)
java·开发语言·数据库·微信·微信小程序·小程序·maven
CHEtuzki5 天前
不用来回切换,一个界面管理多个微信
微信
尘浮生6 天前
Java项目实战II基于微信阅读网站小程序的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·微信·微信小程序·小程序
2401_844137959 天前
PHP中小学优校管理系统小程序源码
微信·微信小程序·小程序·微信公众平台·微信开放平台
真鬼12310 天前
植物大战僵尸杂交版v2.6.1最新版本(附下载链接)
微信·游戏程序
深度学习实战训练营13 天前
albert模型实现微信公众号虚假新闻分类
微信·分类·数据挖掘
2401_8441379513 天前
PHP露营地管理平台小程序系统源码
大数据·微信·微信小程序·小程序·微信公众平台·微信开放平台