uniapp开发短视频论坛哪些坑?

3 人参与

上个月接了个外包活儿,客户非要搞个短视频论坛,还指定用uniapp。当时我拍着胸脯跟他说“没问题,一套代码多端运行,省事儿”,结果真上手了才发现,这玩意儿简直就是个披着跨平台外衣的“无底洞”。今天必须得跟大伙儿吐吐槽,uniapp开发短视频论坛到底有多少坑等着你踩。

视频列表的滑动帧率,能把你逼疯

做短视频论坛,核心就是那个“上下滑动切换视频”的瀑布流。在原生开发里,这其实有现成的组件可以套,但在uniapp里,如果你敢直接用普通的scroll-view去堆叠视频组件,我保证你的APP在安卓低端机上卡得像放幻灯片。

说白了,uniapp的渲染层在小程序和APP端是有差异的。我们最后不得不放弃了常规思路,在APP端直接用了nvue(weex渲染引擎)来写这个滑动列表。虽然nvue的flex布局规则跟传统web css完全是两码事,写起来反直觉反得我想砸键盘,但这真的是唯一能保证不掉帧的解法。你如果强行用vue页面写,视频一加载,内存直接飙红,滑两下就闪退给你看。

小程序端的版权与组件阉割

如果你觉得“大不了我先把小程序端做出来”,那更惨。短视频论坛最核心的组件是什么?video组件。但在微信小程序里,原生组件的层级永远是最高的。这意味着什么?你论坛里所有的弹窗、侧边栏、甚至底部的评论输入框,只要碰到了视频区域,统统会被视频无情地遮挡。

官方虽然给了cover-viewcover-image作为解法,但这俩兄弟不支持复杂的动画,连个简单的过渡效果都做不了。

更恶心的是视频源。很多客户拿来二开的源码,视频流都是直接挂在第三方云存储上的。小程序对域名备案、类目资质卡得死死的,你视频论坛没有对应的视频类目资质,或者播放域名没配进微信后台的白名单,直接给你黑屏,连个报错提示都不给你留全乎。

那些文档里只字不提的“玄学”兼容

最后说个最无语的。论坛得有点赞和评论功能吧?在H5端,一切顺滑得像德芙巧克力;但到了安卓APP端,当你展开评论列表时,由于nvue列表的渲染机制,长文本截断和图片懒加载经常出现计算高度错乱的问题。你明明写了lines="2",它在某些特定机型上就是给你显示一行半。

我熬了三个通宵排查是不是自己css写错了,最后发现居然是uniapp内置组件在某个小版本更新后引入的bug。回退了基础库版本才恢复正常。这种坑它不会在报错日志里告诉你,全靠你用肉身去填。

所以奉劝各位接单的同仁,再有人找你做uniapp的短视频论坛,先问问他要不要适配小程序和小屏低端机。要的话,赶紧加钱,这活儿真不是写两行代码就能跑通的。

参与讨论

3 条评论
  • 彩霞

    感觉这个坑踩的人不少啊,之前用uni搞直播也卡吐了,nvue真心反人类

  • 彩虹泡泡糖

    那个video组件遮挡的问题,用cover-view真的救不了吗?🤔 正准备搞类似项目

  • 影子骑士

    加钱是关键hhh,得让客户明白这活儿不便宜,不然就是白干