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
	    );
	  }
});
相关推荐
iPad协议个微协议9 小时前
# 微信自动营销系统如何基于 WechatApi 做事件驱动设计
android·微信·企业微信·个人开发·wechatapi·微信个人号开发
软擎12 小时前
微信聊天记录怎么导出给AI分析?用它仅需4步,即可导出PDF、HTML、Excel三种格式,轻松导出所有聊天记录做AI分析
微信·聊天记录导出工具·轻虾导出助手
本人手速666+15 小时前
企业微信 API 接入层如何降低业务系统复杂度
运维·网络协议·微信·自动化·ipad
本人手速666+16 小时前
企业微信二次开发中的事件驱动架构:如何把外部事件变成内部流程
微信·自动化·企业微信·个人开发·微信开放平台
xiezhr17 小时前
微信里多了个[小微],可以帮你看朋友圈、发消息、点外卖了
微信·aigc·agent
懂软件的胡子个哥17 小时前
微信工单系统如何基于 WechatApi 做消息分流和状态流转
运维·分布式·微信·架构·企业微信
行者全栈架构师3 天前
WorkBuddy 实战:50 份简历 30 分钟筛完,还能自动出评估报告
人工智能·算法·微信
税月静好,钱途光明4 天前
企业财务体检,到底在查什么
微信
不爱学英文的码字机器6 天前
让 Live2D 角色真正开始对话:Open-LLM-VTuber 从本地部署到远程访问
服务器·opencv·微信·电脑