Video自动播放兼容PC端,移动端,最佳方案(IOS、安卓、微信端)

Unity微信小游戏视频播放兼容性优化:双轨制方案与性能调优实战 视频播放是多媒体应用和游戏开发中的基础功能,其核心原理涉及解码、渲染与资源调度。在跨平台开发场景下,不同运行环境对视频编解码和渲染管线的支持差异,直接影响最终性能与兼容性。从技术价值看,一套健壮的播放方案能显著提升用户体验,降低崩溃率,是项目成功的关键。尤其在Unity引擎与微信小游戏这类特定WebGL环境结合时,开发者常面临性能损耗与功能受限的双重挑战。本文聚焦于通过双轨制与智能降级策略,解决Unity VideoPlayer在微信小游戏中的性能低下、内存泄漏等问题,并封装WXVideo原生接口,实现跨平 阅读详情

需求:

需要在app内嵌中添加背景动态播放,发现pc可以正常播放,放在移动端,部分浏览器会出现各种问题(抓狂ing);

_______________________________________________________________________________________________________

移动端video的局限:

  • iOS下不能自动播放,需要至少touch一次屏幕,这个有时候还挺烦人的,例如我们想做一个H5 app闪屏的时候就蛋疼了。
  • 不能在中间穿插棒棒的交互效果,例如,需要视频某一帧暂停,鼠标hover或者touch的时候,当前画面有交互效果,就很不好处理。
  • 播放的速率不能随心所欲控制,视频完成也就定死了。
  • 如果有些信息是动态的,需要与用户信息关联,则视频方案也会面临很大的调整,因为总不可能每一个用户生成一个不一样的视频,需要辅助额外手段满足需求(例如CSS覆盖定位)。

_______________________________________________________________________________________________________

查看大厂大牛的方案:

滴滴的方案是直接放弃video标签的方案,把视频换成背景图,一张张播放,达到视频显示效果

_______________________________________________________________________________________________________

序列图片视频化技术高性能实现方法:

这里参考了「张鑫旭大佬」的方案,实现原理如下:

  1. 图片DOM对象预加载,放在内存中;
  2. 播放开始,页面append当前图片DOM,同时移除上一帧DOM图片(如果有),保证页面中仅有一个图片序列元素; 对,很简单,没什么高超的技巧,但就是这种实现策略,对页面的开销是最小的,最终运行体验是最好的
  3. 核心JS代码如下(完整代码见demo),假设container是容器元素,我们的图片已经预加载到store对象中,结构如下:

 

var store  =   {    length:  47,
        1 :  img1,
        2 :  img2,
        ...    47 :  img47   
};
var index  =  1;
container.innerHTML  =  ''; // 依次append图片对象
var step  =  
function  ()  {    
    if  (store[index  -  1])  {        container.removeChild(store[index  -  1]);    
    }       container.appendChild(store[index]);    
    // 序列增加    index++;    
    // 如果不超过最大限制,播放下一帧    
    if  (index  <=  47)  {        
        // 42是按照每秒24帧计算的值        
        setTimeout(step,  42);    
    }
};
step();

 

微信h5video不能自动播放和不显示问题解决 在微信中,由于安全和用户体验的考虑,自动播放视频(尤其是带有声音的视频)受到了严格的限制。特别是在iOS设备上,由于操作系统的限制,视频通常不能自动播放,除非它们被设置为静音(请注意,这仅适用于iOS设备上的Safari浏览器(包括微信内置的X5浏览器),并且需要用户之前与页面有过交互(如点击或触摸页面上的某个元素)。然而,在Android设备上,微信的X5浏览器可能会稍微宽松一些,但仍然不建议依赖自动播放功能,因为用户的浏览器设置和微信版本可能会影响这一行为。)且用户之前与页面有过交互(如点击或触摸)。 阅读详情

相关推荐

C语言|深入浅出讲解int转换为float全过程(附2017年统考大题案例)

int转换为float类型为什么会发生精度损失? 精度损失的详细过程究竟是什么样的? 什么样情况float会发生精度损失?没有弄懂2017年浮点数统考大题? 这一篇用2017年统考大题案例帮你更深的理解浮点数的存储规则。

DADONGOOO的博客 1万+

vue, H5 浏览器 播放器video 嵌入APP(andriod,IOS) 首次有声音自动播放 处理

方法一: 可以设置自动播放autopaly,muted静音播放,首次播放有效。如果不是影音无效。 方法二:H5访问数据结束后通知app,app再调用H5的函数触发click事件播放视频 Vue 1.在界面设置一个标签,用于触发click事件。标签内不设置任何文本。类似一个隐藏效果。设置@click,v-trigger , v-if 2. 3. 4.H5访问服务器获取数据结束后再window设置函数clickPlayVideo ,这个函数提供给 asyncgetView...

jdjfjgfdgdfg的博客 3133

保姆级教程:手把手带你玩转英飞凌TC397开发板的板载资源(CAN FD、LCD、SD卡)

本文提供英飞凌TC397开发板的全面开发指南,涵盖CAN FD通信、LCD显示、SD卡文件系统和以太网通信等核心功能。通过详细的代码示例和硬件连接说明,帮助开发者快速上手并充分利用开发板的丰富资源,实现高效嵌入式系统开发。

weixin_33726313的博客 241

APP端webview自动播放视频

昨天碰到一需求,需要写一个html5页面,要求支持打开自动播放视频。 ok,要支持自动播放,设置的autoplay="autoplay"就可以了吧。 测试发现只有在浏览器中是正常播放了,android和ios都没有播放。 换了种写法: function playVideo(){ var video = document.getElementById("alt-player-ios");

Bug管理员 1万+

第零章 序 Chisel教程汇总

笔者目前西安交通大学微电子硕士在读,研究方向为数字集成电路设计与体系结构。鉴于目前RISC-V的火热程度,笔者参与了课题组的RISC-V项目,并了解、学习了颇受关注的新型硬件构建语言——Chisel,当前参与的神经网络加速器设计便是使用Chisel开发的。这是一门敏捷开发语言,据称要比传统的Verilog语言快很多。在亲身使用过后,笔者发现确实快了不少。这主要得益于Scala作为高级语言的简洁风格...

qq_34291505的博客 7万+

7、复杂分布式水文模型的两阶段代理参数校准框架

本文提出了一种针对复杂分布式水文模型的两阶段代理参数校准框架,旨在解决可变入渗能力模型(VIC)在参数校准过程中计算成本高、耗时长的问题。该框架结合AdaBoost与反向传播神经网络(BPNN)构建高精度代理模型,并引入ε-NSGA II多目标优化算法加速搜索最优参数集。通过在兰江流域和湘江流域的实验验证,该方法在校准效率上提升了约20倍,同时保持了高模拟精度(NSE接近1,Bias接近0)。框架采用两阶段设计:第一阶段(SM-I)快速筛选关键参数范围,第二阶段(SM-II)进行高精度预测,显著减少了无效计

apple5的专栏 86

Web视频video自动播放(移动端及PC端)

video自动播放;移动端禁止全屏播放

u010735316的博客 1万+

【读代码】从claude skills到superpowers项目

最近claude skills成了大热门,今天一起看下GitHub 上的开源技能框架,他将“工作流”封装为“技能” (Skills)。本文尝试剖析该项目的技能粒度定义、多技能关联架构、应用逻辑等。与传统的 Function Calling 不同,Superpowers 中的 Skill 定义粒度并非“原子操作”,而是**“认知模式” (Cognitive Mode) 或“工作阶段”**。

kakaZhui的博客 1920

html5 移动端 Android和iOS手机 video自动播放

<video webkit-playsinline playsinline x5-playsinline="" x-webkit-airplay="allow"id="video" controls="controls" src="xxx.mp4" autoplay="autoplay"></video> 1 、iOS方法: 引入jweixin-1.6.0.js <script src="http://res.wx.qq.com/open/js/jweixin-1..

S筱潇S四维Smile 1615

QGis软件 —— 1、Windows10下载安装QGis及插件

QGis —— 1、Windows10下载安装QGis及插件

5159

嵌入式面经篇八——进程&线程

记录一些招聘公司在招聘嵌入式软件岗位时的一些问题,此文为第八篇。进程上文:是指进程由用户态切换到内核态时需要保存用户态时CPU寄存器中的值,进程状态以及堆栈上的内容。即保存当前进程的状态,以便再次执行该进程时,能够恢复切换时的状态,继续执行。进程下文:是指切换到内核态后执行的程序,即进程运行在内核空间的部分。中断上文:硬件通过中断触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的一些变量和参数也要传递给内核,内核通过这些参数进行中断处理。

明天你好的博客 1854

移动端video标签适配

video 标签在移动端的适配,折腾了几天。主要问题是移动端的video并没有像pc端上在dom加载完会加载视频内容,导致了移动端的视频播放延迟以及video的黑屏问题。解决办法一开始尝试了网络说的canvas取视频第一帧作为poster,其实并没有用,canvas取到的video的并不是第一帧,而是个黑色的背景。后来尝试了server端通过ffmpeg截取视频的第一帧作为poster,一开始感觉完美解决了,后来突然某天点击播放会闪个黑屏,还是手机端没有预加载视频内容(真机调试过iphone上的Safari

chencxue的博客 1826

【AI编程】2025年16款主流AI编程工具全维度测评及选型指南

2025年16款主流AI编程工具全维度测评及选型指南

funfan的博客 1万+

前端之旅——兼容篇

多数浏览器厂商喜欢搞点自己的特性,显得自己不一样,这些特性到现在也存在,只不过会有一些标准化处理。即便是这样,浏览器还是搞了不少事情出来,先从移动端开始,毕竟它更为遵守一定之规。 移动端 1、IOS微信端输入框获取焦点软键盘弹起,页面上滑至输入框位置,失去焦点之后页...

chukan9718的博客 169

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android Webview中解决H5的音视频不能自动播放的问题

在开发webview的时候,当加载有声音的网页的时候,声音不会自动播放, 解决方法:在webview中调用js方法。这个方法需要在webview的setWebViewClient方法之后在onPageFinished回调中执行调用。 代码如下: web_view.setWebViewClient(new WebViewClient() { // 解决H5的音视频不能自动播放的问题 @Override ...

qq_27717857的博客 2608

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

android webview h5视频,Android:webView加载h5网页视频,播放不了,以及横屏全屏的问题和实现自定义加载进度条的效果...

public class myWebChromeClient extendsWebChromeClient {@Overridepublic voidonReceivedTitle(WebView view, String title) {super.onReceivedTitle(view, title);LogUtils.i(NewsDetailsActivity.class, "title:...

weixin_36131079的博客 629

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

WebView加载H5视频的问题总结

1.全屏显示 2.自动播放 布局省略, 页面就一个WebView控件 private WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.lay...

Lcy_for_Android的博客 1026

video标签自动播放视频和移动端封面空白问题解决

微信端和手机浏览器显示如下。通过css隐藏下载按钮。

彭世瑜的博客 2万+

移动端video标签第一帧显示空白问题

video视屏第一帧无法显示解决方案

m0_54364474的博客 4765

【HTML】HTML5 video播放有声音无图像的解决方法

如果以上方法都无法解决问题,建议尝试使用不同的视频播放器或者将视频文件转换为不同的格式,看看是否能够正常播放。不同的浏览器支持不同的视频编码格式,如果视频文件使用了不被浏览器支持的编码,可能会导致只有声音没有视频。而且奇怪的是我试过我们300M到1G之间的视频是有问题的,但是300M以下的,或者1G的视频都是没有问题的。如果你的计算机性能较低,可能无法处理较大的视频文件,导致只有声音没有视频。尝试减小视频的分辨率和帧率,或者使用更高效的压缩算法,以减小文件大小。这个我试过,采用不同的浏览器,都不行。

九师兄 8141

video标签在安卓手机内置浏览器上的播放问题

道阻且长,行而不辍,未来可期在手机内置浏览上,虽然没有给video标签设置controls,但在内置浏览器上,就是会显示。而且,video一旦自动播放,video的层级就会提升到最前,想设置一个盒子覆盖在上面都做不到,给前端造成了很大的困扰。看了很多相关问题的解决方法,直到看到把video的src设置为blob(视频流)安卓手机的内置浏览器因为认不出数据格式,而不再劫持video标签的渲染。直觉是个好方法,开始动手。下载blob类型的文件:在回调函数中可以这样写完美解决。

weixin_44891495的博客 2365

移动端使用原生video标签不显示第一帧问题

移动端不显示第一帧问题

m0_57121248的博客 2872

苹果mac系统下浏览器video无法自动播放问题

我们在做手机Android/iOS开发的时候,声音一般都是无法自动播放的,桌面PC版的Safari浏览器在2017年也宣布禁止带有声音的多媒体自动播放功能,后来谷歌发布了最新的Chrome 66浏览器也禁止了声音自动播放,也就是说video的autoplay自动播放属性在桌面版的浏览器也将失效。 &lt;video autoplay&gt; &lt;source src="video/hq...

我系渣渣林 5755

ios和安卓手机端使用video标签播放失败的问题

安卓和浏览器适配做得很好,只需要设置好文件类型和,最后返回文件的二进制流即可。但是ios客户端还需要设置文件大小才能正确播放。我只做了MP4格式的视频,其他格式的视频暂时还没有试过,百度看了下,其他视频文件可能会涉及到视频编码的问题。在手机端上播放视频,流量很贵,像我的做法的话都是一次性返回整个文件的二进制流,这样过于暴力,后续优化的时候,可能要设置另外的响应头,进行分段返回。比如响应头中是获取文件的部分内容。分段返回文件二进制流的实现方式。

weixin_45935149的博客 7万+

微信video视频自动播放

document.addEventListener("WeixinJSBridgeReady",function(){ document.getElementById("videoID").play(); },false); video标签在移动端,autoplay属性是没有效果的。

little_boy_9527的博客 1万+

手机 html自动播放视频格式,Video 在网页和移动端无法自动播放问题??

标签介绍 标签定义视频,比如电影片段或其他视频流。支持三种视频格式:MP4、WebM、Ogg。是 H5 的新标签,使用如下://autoplay表示视频自动播放,controls表示显示视频控制器,loop表示循环播放您的浏览器不支持 video 标签。浏览器支持表格中的数字表示支持该属性的第一个浏览器版本号。Element谷歌IE火狐safariopera4.09.03.54.010.5提示和...

weixin_42118056的博客 2310
上一篇: 微信小程序 动态页面二维码 在canvas中显示问题
下一篇: video标签特殊属性详解
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时光机上敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值