V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
abcd191898105
V2EX  ›  Flutter

flutter 视频播放器 的恩恩怨怨

  •  
  •   abcd191898105 · 2021-02-03 14:44:46 +08:00 · 3103 次点击
    这是一个创建于 1422 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对于和我一样菜逼前端,不会 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

    预览

    6 条回复    2023-11-10 15:52:11 +08:00
    abcd191898105
        1
    abcd191898105  
    OP
       2021-02-03 14:58:59 +08:00
    其实 chewie 播放还有一个更要命的问题,那就是自动获取视频的播放比例,如果视频是细长条的那种,那么比如视频的比例是 1000 × 300 的,你的屏幕是 1000 × 450 的,(说的是假如),当你给 video_player (也就是你的 chewie )设置自动按照视频比例来显示的时候,播放器的控制器,也就是底部控制栏的 ui 就会飘上去,不会在屏幕的底部,(全屏的时候) ui 控制器和视频底部搞的一样,视频比例并不会占满全屏,这很要命,我当时发现这个问题的时候就惊了
    abcd191898105
        2
    abcd191898105  
    OP
       2021-02-03 18:54:22 +08:00
    fijkplayer 和 flutter_ijkplayer 也有问题,那就是打包体积很大,我的是 30 兆
    yangyang
        3
    yangyang  
       2021-02-03 19:53:56 +08:00
    感谢趟坑。我打算假期试试 Flutter,想做的也是一个视频功能。
    Misakas
        4
    Misakas  
       2021-02-04 10:32:33 +08:00
    🙄楼主可以留个联系方式嘛,最近也在玩 flutter,想交流一下
    abcd191898105
        5
    abcd191898105  
    OP
       2021-02-04 18:29:57 +08:00
    @Misakas 我也是菜逼,你想多了,我也是在群里泡着
    wangyapu
        6
    wangyapu  
       2023-11-10 15:52:11 +08:00
    fijkplayer 也是基于原生的 IJKPlayer (源码里 ios 目录.podspec 能看到是依赖的原生的 BIJKPlayer ,也就是作者自己 fork 的 ijkplayer),所以感觉也能算第 3 类?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 01:47 · PVG 09:47 · LAX 17:47 · JFK 20:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.