flutter 视频播放器 的恩恩怨怨

2021-02-03 14:44:46 +08:00
 abcd191898105

对于和我一样菜逼前端,不会 java 原生安卓的人,玩 flutter 真的好痛苦的说。

今天就谈谈我遇到的 flutter 播放器的问题

1:flutter 自带的 video_player,以及 video_player 的孙子们( chewie,betterplayer,yoyo-player,等等)(不推荐使用)

市面上主流的大概是 video_player 和她的衍生品,但是这类播放器有几个要命的问题,1:video_player 本身对于分段源 m3u8 的播放非常不友好,典型的问题就是某个分段在突然网络有点不好的情况下请求失败,会导致 video_player 直接播放失败,貌似不会去重复请求,有经常下载 m3u8 视频的朋友们肯定知道,在下载的时候,太多的切片,总有那么一两个小片是会偶尔超时一下,那么使用 video_player 播放就是炸胡,(播放到一半突然出现播放失败)

2:编译原生播放器到 flutter 使用

这一类典型的代表就是 fijkplayer,flutter_ijkplayer 。这两个播放器差不多,前者 fijkplayer 作者维护的更勤一些。不过前者 fijkplayer 作者注重播放器性能和 bug 修复,皮肤和基本使用上的完善作者希望用户自行解决,说白话就是你自己去写皮肤和手势那些,会增加时间,新人使用不是很友好 flutter_ijkplayer 作者上一次提交代码好像是 3 月份的时候,差不多挺久了,文档貌似不全,好处是皮肤有自带的,至于想自定义皮肤,只能完全参考源码。好处是自带有手势拖动快进,快退

3:原生播放器与 flutter 交互(我也不知道应该怎么算这类播放器,没办法,我菜逼新人) 典型代表 flutter_tencentplayer,这款播放器,是我目前见过 flutter 这边能找到能用的最好的一款了,功能方面都很好,手势拖动都有。坏处是,文档说明不全(指的是新手用),要看源码找下。也不知道是我太菜,还是什么原因我个人使用的时候,没有成功的时候,说人话就是我不会用这个播放器,也没办法打包,报错哇哇的,解决不了。 不过我见过别人成功使用 flutter_tencentplayer 打包的 app,确实效果很好。 缺点,可能上手不是很容易,打包文档方面,反正我不会。不能在模拟器预览貌似,只能真机

在绕了一圈之后,差不多一年过去了,播放器这些也没什么变化,还是那样 最后我选择了 fijkplayer,但是 fijkplayer 没有手势快进,皮肤也就那样。据作者 github 说是有打算弄,但是一年过去了也没看到,没办法自己瞎逼改了改,出来个包,是个 fijkplayer 的简单皮肤, 功能上就是美化了下播放器 ui,加入了手势滑动快进快退,原本打算也加入上滑下滑操作亮度和音量的,但是发现作者文档说修改音量需要修改 java 原生入口文件,所以就放弃了。

皮肤地址 https://github.com/abcd498936590/fijkplayer_skin

预览

2737 次点击
所在节点    Flutter
6 条回复
abcd191898105
2021-02-03 14:58:59 +08:00
其实 chewie 播放还有一个更要命的问题,那就是自动获取视频的播放比例,如果视频是细长条的那种,那么比如视频的比例是 1000 × 300 的,你的屏幕是 1000 × 450 的,(说的是假如),当你给 video_player (也就是你的 chewie )设置自动按照视频比例来显示的时候,播放器的控制器,也就是底部控制栏的 ui 就会飘上去,不会在屏幕的底部,(全屏的时候) ui 控制器和视频底部搞的一样,视频比例并不会占满全屏,这很要命,我当时发现这个问题的时候就惊了
abcd191898105
2021-02-03 18:54:22 +08:00
fijkplayer 和 flutter_ijkplayer 也有问题,那就是打包体积很大,我的是 30 兆
yangyang
2021-02-03 19:53:56 +08:00
感谢趟坑。我打算假期试试 Flutter,想做的也是一个视频功能。
Misakas
2021-02-04 10:32:33 +08:00
🙄楼主可以留个联系方式嘛,最近也在玩 flutter,想交流一下
abcd191898105
2021-02-04 18:29:57 +08:00
@Misakas 我也是菜逼,你想多了,我也是在群里泡着
wangyapu
172 天前
fijkplayer 也是基于原生的 IJKPlayer (源码里 ios 目录.podspec 能看到是依赖的原生的 BIJKPlayer ,也就是作者自己 fork 的 ijkplayer),所以感觉也能算第 3 类?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/750931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX