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
	    );
	  }
});
相关推荐
微信开发api2 天前
微信iPad协议怎么用?基于协议的二次开发实践
微信·机器人·ipad
wechatbot8882 天前
极客互动企业微信 SCRM 自动运营平台效果实测
java·微信·企业微信·rpa
懂软件的胡子个哥2 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发
微信开发api2 天前
微信机器人接口:REST API vs WebSocket 选型建议
微信·机器人·ipad
极客互动API2 天前
极客互动-企业微信基于外部API接口实现AI客服自动接管外部联系人消息收发
java·微信·企业微信·ai编程·rpa
随性而行3602 天前
企业微信二次开发实战:基于企业微信API构建自动化营销触达系统
微信
前端小白乘风3 天前
VS Code 终于能连微信了!发现一个硬核开源神仙插件:WeChat AHP
微信·visual studio code·deepseek
M哥支付3 天前
商户池是什么?
服务器·网络·其他·微信·金融
孙严Pay3 天前
代付 VS 纯代付
笔记·科技·计算机网络·其他·微信
iPad协议个微协议3 天前
微信消息进入工单系统为什么需要候选层:WechatApi 接入后的服务流程设计
微信·自动化·微信开发·wechatapi·个人微信号二次开发·微信api·微信二次开发