结论: 用video_thumbnail库,我的github demo

需求

视频封面的列表

两个开源方案

1. video_thumbnail 库
  • 满足列表使用(就用它了)
  • 实现:用桥调用的 Android、IOS SDK里的API,生成一个Bitmap。(之前都不知道Android有这个API)
    • Android注意下编译版本compileSDkVersion,目前是要27,plugin里做了API适配。 和你项目不符,就直接copy代码吧
实际遇到的问题

方案先行: copy plgin代码到项目中,在修复编译报错。

原因:

  1. plugin适配了AndroidX,调用了AndroidX的 NoNull注解。这个我们项目没适配
  2. plugin的Android compileSDKVersion是27,我们项目是26.导致找不到27的类。其实没问题。因为compileSDKVersion不对运行时做影响, 但成熟大项目,短时间也升不了。

综上决定 copy Plugin的代码,改改写到程序里,然后改报错代码。 也就IOS代码、Android一个utils类。再加个Flutter里的桥。很简单。。

Android 取帧的方法
                if (android.os.Build.VERSION.SDK_INT >= 27 && targetH != 0 && targetW != 0) {
                    // API Level 27
                    bitmap = retriever.getScaledFrameAtTime(timeMs * 1000, MediaMetadataRetriever.OPTION_CLOSEST_SYNC, targetW, targetH);
                } else {
                    bitmap = retriever.getFrameAtTime(timeMs * 1000);
1. video_player
  • 适合一张封面 那种视频预览(不适合相册式的预览,除非二次开发)
  • 好处就是官方推得,兼容性啥的肯定好。(要是做成一个VideoPlayer轮流使用,那肯定相当可以,不过有开发成本)
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐