车大棒浅谈移动端视频播放闪屏

感谢空调之父

前言

因为工作的原因,好久都没有更新博客。想写一些东西,可是又不知道写什么。码字写博客这个东西,果然像人体的肌肉一样,作为8块腹肌的我现在表示腹肌合并成一块。
但是,这并不能代表什么!作为一个明明可以靠脸吃饭的人,却靠才华去吃饭的人,我表示我依旧很自豪!耶耶!切克闹!

你有freestyle吗?

街边大妈:“哎!小伙子!这墨镜你到底买不买!不买赶紧还给我!”
车大棒:"买不起!买不起!还您墨镜......"
言归正传,今天就分享一下自己在处理移动端的遇到一些坑点。

移动端Click 300毫秒延迟

一日接到一个brief,大致就是一个loading引导页面,点击引导页上面按钮之后播放视频。视频播放完之后出现结束页,结束页上面挂着2个按钮一个跳向下载链接,一个指向分享。

项目brief

很好!so,easy!接到这个brief我就马不停蹄的开始干活了,但是很快出现了一个问题。在点击loading页面播放按钮的之后,在loading页切换到视频播放页面会有一个短暂的延迟闪屏问题。这就很尴尬了,刚刚喊的so,easy!这么块就卡住了,打脸未免太快了。(虽然经常被打脸ing)

我表示不服,赶紧上网搜索了一下,移动端click事件,结果发现移动端click事件会有300ms延迟!

这个操作还是头次听说

传说中的双击缩放:
这要追溯至 2007 年初。苹果公司在发布首款 iPhone 前夕,遇到一个问题 —— 当时的网站都是为大屏幕设备所设计的。于是苹果的工程师们做了一些约定,应对 iPhone 这种小屏幕浏览桌面端站点的问题。
这当中最出名的,当属双击缩放(double tap to zoom)。这也是会有上述 300 毫秒延迟的主要原因。
双击缩放,顾名思义,即用手指在屏幕上快速点击两次,iOS 自带的 Safari 浏览器会将网页缩放至原始比例。由于用户可以进行双击缩放或者双击滚动的操作,当用户一次点击屏幕之后,浏览器并不能立刻判断用户是确实要打开这个链接,还是想要进行双击操作。因此,iOS Safari 就等待 300 毫秒,以判断用户是否再次点击了屏幕。
鉴于 iPhone 的成功,其他移动浏览器都复制了 iPhone Safari 浏览器的多数约定,包括双击缩放。几乎现在所有的移动端浏览器都有这个功能。
------来自与Apple公司的一次six、six、six的操作!

解决300ms延迟方案

之后就尝试就上网搜索,解决300ms延迟方案的解决方案。
1、禁用缩放
2、设置 viewport 的 device-width
3、使用指针事件
4、使用 touchend 事件
上述方法都有采用过,但是切换成播放视频的时候依旧会出现闪屏

不按照套路出牌呀!

难道是300ms延迟的问题没有解决?抓了抓头,然后思索了一会。之后用定时器作了一个监听,然后用console.log去输出检查结果,结果300ms的问题的确解决了,但是闪屏的问题却是还是存在的。

loading页面淡入处理

绝望的我坐在小板凳静静的发呆,难道这个浏览器在播放视频的时候本身会有一个延迟效果。因此会导致loading页面与视频衔接的时候会出现一个间断的延迟效果,因此就会出闪屏

有了这个想法之后,突然灵光一想既然视频本身会有一个延迟。那么我把loading也做一个延迟处理的效果。这样两边都延迟一会,这样就不会出现了闪屏现象了。

于是在CSS代码里面加入一段css代码

@-webkit-keyframes fadeout500 {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

点击播放按钮之后,就给loading页添加一个css类名fadeout500。在Google浏览器模拟手机上面运行,很好没有闪屏问题。

视频监听处理

PC上面模拟器没有问题,高兴的我很快拿起了我的安卓手机开始测试。很好也没有出现闪屏现象,路面畅通,可以随时开车。

开车开到一半的时候,然后看见后台哥哥的iPhone 6 Plus正静静躺在桌子面。于是停下来,打算借后台哥哥的iPhone继续继续开车。当我按下播放视频之后,很快屏幕一闪。

妖兽!居然翻车了!这个闪屏到底是什么鬼呀?

'你在视频播放之后再让loading页面消失就不会出现闪屏了!' 路过的老大看见坐在板凳上抽风的我,淡淡的补充了一句。

‘视频播放在再消失’顺着老大的话语我嘴角跟着念叨一下,然后猛然间所有的思路全部涌现过来了。

闪屏的主因

所有如果我改变思路,点击播放之后先不忙着让loading页面消失,而是控制播放视频。同时对于视频做一个监听事件。
这个时候就得用到html5 相关DOM的事件和属性

音频/视频属性:currentTime( 蓝色字体指向MDN文档说明)
currentTime 设置或返回音频/视频中的当前播放位置(以秒计)

音频/视频事件: timeupdate
timeupdate 当目前的播放位置已更改时触发。

var  loadingController = function () {
    if (video.currentTime > 0.01) {
        loadingEl.hide(); //loading页消失
    }
}
video.addEventlistener(("timeupdate", loadingController;)

完美的解决,这样也不用还在首页加个什么淡入淡出的效果了,只需要确定视频播在控制loading消失就ok。
对了,为了代码的严谨性,需要在loading消失的事件前面,再加一个事件移出事件监听。
video.removeEventlistener(("timeupdate", loadingController;)

小结:

以上就是我对于移动端视频播放闪屏的处理过程一点胡扯八扯
原创文章,文笔有限,才疏学浅,文中若有不正之处,欢迎各位啪啪的打脸赐教。


我是车大棒,我的目标是星辰与大海!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,125评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,293评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,054评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,077评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,096评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,062评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,988评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,817评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,266评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,486评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,646评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,375评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,974评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,621评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,642评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,538评论 2 352

推荐阅读更多精彩内容