凌晨三点,还亮着。
手指停在快捷键上,突然闻到窗外飘来的夜来香。
有点恍惚。上次熬夜写代码是啥时候来着?
转眼一看,video组件已经跑了第七遍。真机上还是卡。
为啥非得要这破源码。
## 为什么选而非原生?
实话实说。
你要我选,我也会选。
不是因为完美。是因为穷。
一组代码运行于四个终端,其中包括H5、小程序以及两个App ,要是采用原生方式来做,仅仅人力方面就足以令人头疼不已。
Vue语法嘛,学过点前端的都能上手。
插件市场搜“短视频”,一搜一大把,省事儿。
但你知道性能损耗在哪儿吗?
在抖音那里,原生的情况是逻辑视图直接相连,而要是使用的话,就好比是在中间额外增添了一个“翻译官”的角色,其性能大概处于原生性能的七到九成这个范围。
勉强够用。
不过你要是追求极致流畅,当我没说,老老实实双端原生。
## 滑动卡顿怎么解决?
初始之际,我选用纯Vue页面以及组件,于滑动之时,状况着实不堪入目,呈现出极为卡顿的现象,仿若播放PPT一般,一顿一卡的。
后来查了半天,换成了Nvue。
Nvue这个东西,其性能着实出色,它能近乎达到原生体验的程度,而且视频进行全屏覆盖也是不存在问题的。
但也得提醒你:
很多组件不兼容
写法有点不一样,要花时间适应
偶尔也有坑,比如全屏时video层级冲突
有点麻烦,但值。
还有个小技巧:只渲染三四个item,别全塞进去。
太多可撑不住。
## 抖音小程序真的能上架吗?
哈哈,这个我最有发言权。
代码写完了,兴冲冲去提交审核。
结果被拒了好几次。
关键点:
不支持个人主体,必须是商户
logo、名字这些乱七八糟的,一点都不能碰瓷“抖音”这俩字
隐私弹窗要用uni-app官方的
审核周期大概一到三天
我有个朋友代码都写好了,愣是卡在审核环节过不去。
所以…准备搞之前,先掂量掂量自己能不能过审。
## 后端怎么配合?
前端写爽了,后端别拉胯。
我后端用的PHP()。也有人用Java。
但关键在服务器配置。
视频全放自己服务器上,带宽要求特别高,成本也高。
可以考虑用CDN。或者接阿里云、腾讯云的播放器SDK。
此外需要留意,iOS与安卓的播放机制存在差异,特别是在后台预加载这一方面,iOS的限制极为严格。
## 卡顿的真相:回调
那次让我崩溃的bug,源头就是这个。
真机上跑着跑着视频直接黑了。
搞了好久,最后发现是事件疯狂触发。
一秒触发N次。
UI连续更新,性能差的设备直接扛不住。
最终方案是做节流(大概一秒一次,或设其他间隔)。
但官方文档压根儿没提这个限制配置。
自己想办法吧。
## 仿抖音值不值得?
说实话。
要是你属于个人开发者范畴,又或者是小团队类型的,可用于支配的预算并不多,还想着能够迅速将多端(App 以及小程序还有 H5)顺利运行起来,那么 绝对堪称是福音。
节省时间成本,这套完全没毛病。
但想做到和抖音一样的极致流畅,搞复杂动画,那原生才是归宿。
想来也蛮有趣味的,抖音将视频流交互发挥到了极致,然而我们却是以“省钱”的形式去模仿它。
用七成的成本,实现八成五的效果。
这就是现实。
窗外天快亮了。
再过几个小时,代码编译调试,又得继续。
但看到用户在真机上流畅滑动视频的那一刻,心里挺暖。
值得。

