移动端视频踩坑实录

最近刚结束一个移动端涉及视频播放的小项目,踩了不少坑,现记录在此:

1、ios系统中让视频宽高都100%铺满所在父层

设置width="100%" height="100%"在ios中是无法实现宽高都100%的,应该设置 video 的样式:

width:100%;
height:100%;
object-fit:fill;

2、安卓系统中禁止视频全屏

playsinline只能禁止ios全屏,不能禁安卓全屏,要在安卓禁止视频全屏须在 video 中设置

x5-playsinline="true"

另外,在安卓手机如果不禁止视频全屏的话,在视频播放完后会跳到一个视频推荐页面

3、video中src的地址不能为相对路径

video 中路径须为绝对路径或者 base64 数据

4、视频在微信浏览器中打开的自动播放

在微信浏览器打开视频如果想要实现自动播放须在 wx.ready 中设置该视频 play(),或者用如下代码:

document.addEventListener(‘WeixinJSBridgeReady‘, function () {
   mp4.play()
})

5、如何去掉视频播放前的黑屏

视频下载下来后在播放之前还需要处理流数据,如果视频比较大处理流数据时间比较长就会导致播放前的黑屏(也可能是一片白,总之是没有播放任何内容),这时可以通过判断视频播放时间(currentTime)是否大于0来判断视频是否已经可以播放了,如果currentTime大于0再把视频层显示出来就可以有效跳过播放前的黑屏现象,视频层显示出来时注意要把视频的currentTime重新设为0,否则会出现视频前面几帧缺失的情况。

6、mp4+mp3 在ios和安卓不同的表现

如果在播放视频时有其他的背景音乐,在安卓中背景音乐不能播放,在 ios 中则可以正常听到背景音乐,因为在安卓中一个媒体播放是排斥其他媒体播放的。这个时候如果想要兼容

原文地址:https://www.cnblogs.com/programs/p/10343162.html

时间: 2024-11-07 23:29:23

移动端视频踩坑实录的相关文章

网站移动版本开发踩坑实录一

最近公司项目需要开始做wap版本开发,虽然在上一家公司也有做过类似的工作,由于当时公司产品没有严格要求适配各个移动设备,也并没有很多动作效果和图片自适应这类的效果,相对来说体系没有那么成熟,更多是在wap版本上可以用就ok了(其实更多的工作集中在功能和cssser身上,交互效果没有那么强,唯一做的好玩一点的工作是菜单滑动.图片缩放[未被上线过]),因此基本上没有在移动端踩各种坑:说了这么多上一家公司的wap版本,下面开始讲讲现在做的项目让我在wap版本上踩的各种坑开始说起.   第一坑:技术选型

JAVA实用案例之文件导出(JasperReport踩坑实录)

写在最前面 想想来新公司也快五个月了,恍惚一瞬间. 翻了翻博客,因为太忙,也有将近五个多月没认真总结过了. 正好趁着今天老婆出门团建的机会,记录下最近这段时间遇到的大坑-JasperReport. 六月份的时候写过一篇利用poi文件导入导出的小Demo,JAVA实用案例之文件导入导出(POI方式). 虽然简单,但是企业应用的原理基本上也就是这样,只不过是封装的更好些,不像我之前写的那样每个Cell都需要定义,其实poi的方式也是我目前最推崇的方式之一了.主要原因是jxl不支持xlsx,Jaspe

网站移动版本开发踩坑实录三

鉴于本人在移动wap上的开发经验少,遇到的问题确实不少,很多问题都是为了项目紧急上线而不得已的写临时性的fixed的方案,所以解决方法也存在缺陷,这次记录的虽然没有什么高大上的东西,把几个明显的问题和解决过程记录下来. 1.ios系统浏览器事件会触发两次 问题发现于ipad.iphone上,起初遇到这个问题本以为自己在绑定了两次事件(touchstart click),但是由于最新的ipad对click事件不支持以及为了防止重复绑定事件,因此我特意处理了关于touchstart和click做了一

网站移动版本开发踩坑实录四

前戏:晕晕乎乎正在瞌睡中,测试妹纸拿来一个ipad,开着微博,打开了站点说你看,微博自带浏览器点击放大以后网页没有自适应啊(网站由于有图片神马的,全站图片要自适应各种移动设备),我惊醒,心想我草这是啥功能, 我这种木有ipad的人什么时候看见过这个功能. 好吧既然出问题了,就开始想想吧---继续昏迷10分钟.... 开始:拿着ipad上大概看了一下,当微博打开的时候,其实页面还是有一点冗余的空白宽度,既然做了一个80%(估计)的可视展示区域,但是还是能有用移动留出空白,然后点击放大,页面平铺这个

Android 10 踩坑实录 👉 2020-01-20

1.https联网限制 Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (light greylist, reflection) Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (light g

Oracle DBLink跨数据库访问SQL server数据同步 踩坑实录

项目需求:这里暂且叫A公司吧,A公司有一套人事管理软件,需要与我们公司的软件做人员信息同步,A公司用的是SQL server数据库,我们公司用的Oracle,接口都不会开发(一万句"fuck you"),就单单给我们公司提供了一个SQL server的账户和密码,还有一个视图.后来百度一番,可以通过DBLink跨数据库访问,然后做数据信息同步功能. 安装过程中,踩了不少的坑,需要配置很多的东西,QQ群里也请教不少人,都很少人听说还有这玩意,现在做数据对接,都是走到接口,传JSON字符串

(最新)VS2015安装以及卸载过程——踩坑实录

前言Visual Studio (简称VS)是微软公司旗下最重要的软件集成开发工具产品.是目前最流行的 Windows 平台应用程序开发环境,也是无数人学习编程的入门软件之一.Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务.智能设备应用程序和 Office 插件,目前还可开发安卓平台应用及IOS平台应用.由于本人是做视频编码的,跑实验都是用C语言,而VS系列是对C语言最友好的编程工具.因为,我花了整整一天时间在安

踩坑实录 Android studio中关于 No cached version of **** available for of处理办法

当我们添加某些依赖库(Okhttp.Retrofit)时, Android studio 会报如下错误: Error:A problem occurred configuring project ':app'.> Could not resolve all dependencies for configuration ':app:_iranDebugCompile'.   > Could not resolve com.facebook.network.connectionclass:conn

Archlinux 踩坑实录

Archlinux 没声音 1. 排查驱动,声卡驱动没问题 2.排查alsa,alsa没问题(并确认声卡存在且取消静音) 3.抱着尝试的心态,安下VLC.然后提示找不到默认声卡设备(大概这个意思),通过audio选项切换至其他几个设备,终于有声音了.. 4.设置默认音频设备: aplay -l 查看所有音频设备,锁定我需要的设备是:card 1 device 1  ALC892 Digital 编辑文件:/etc/asound.conf defaults.pcm.card 1 defaults.