CamerAwesome
camerawsome是一个非官方的flutter 跨平台相机组件,组件的官网介绍地址为:
https://pub.dev/packages/camerawesome, GitHub仓库地址为https://github.com/Apparence-io/CamerAwesome,这款组件在 GitHub 中应该是flutter 排名第一的相机组件,相比官方的组件,这款相机组件有一下特点
- 功能比较丰富、完善,还集成滤镜和双摄这种高级功能
- 许可证 MIT,比较宽松,适合我基于此进行二次开发
- 示例完善,上手和集成比较方便
功能特性
以下是官方列举的一些特性,各个特性都比较明确,就不翻译了。可以看到,支持的功能和特性非常地完善,高级滤镜和人像检测和分析这种高级功能都有。
Features | Android | iOS |
---|---|---|
🔖 Ask permissions | ✅ | ✅ |
🎥 Record video | ✅ | ✅ |
📹 Multi camera (🚧 BETA) | ✅ | ✅ |
🔈 Enable/disable audio | ✅ | ✅ |
🎞 Take photos | ✅ | ✅ |
🌆 Photo live filters | ✅ | ✅ |
🌤 Exposure level | ✅ | ✅ |
📡 Broadcast live image stream | ✅ | ✅ |
🧪 Image analysis (barcode scan & more.) | ✅ | ✅ |
👁 Zoom | ✅ | ✅ |
📸 Device flash support | ✅ | ✅ |
⌛️ Auto focus | ✅ | ✅ |
📲 Live switching camera | ✅ | ✅ |
😵💫 Camera rotation stream | ✅ | ✅ |
🤐 Background auto stop | ✅ | ✅ |
🔀 Sensor type switching | ⛔️ | ✅ |
🪞 Enable/disable front camera mirroring | ✅ | ✅ |
如何安装和使用
这部分就不详细介绍,查看官方的 readme写的也比较详细。官方 readme地址:GitHub仓库地址为https://github.com/Apparence-io/CamerAwesome。但需要注意一点,这个集成和使用方法是默认使用官方提供的功能。如果要和我一样,需要修改官方的实现,比如实现各种 native 层的高级特效等功能,则可以直接把官方仓库 fork一遍,clone下来进行二次开发和魔改。官方提供的 demo也非常简洁,基于此开发相机app也合适。
不足
这个组件功能非常丰富和完善,可以说在此基础之上,重新设计一个主界面,换上一个 logo就是一个类似系统原生相机的 app了。但如果需要实现更多的功能,和对性能有要求的,还是无法直接使用的。因为目前这款组件体验下来还发现以下的不足
- 性能不行,功能非常完善,但是滤镜这些高级功能都是基于 dart实现的,至少换成 c++的实现,商业的相机 app这部分都是基于 gpu的实现的。
- 人脸检测功能可用性不足,目前内置的功能用于对焦和人脸大致识别还勉强可以。但是如果要基于此做美颜功能就远远不够了,人脸关键点识别准确性、稳定性还有和性能目前都还不满足要求。对于这一点,要么使用商业提供的库,或者可以使用欢聚时代提供的免费sdk。
以上就是对flutter生态的这个awsomecamera组件的简单介绍,总体看下来虽然有一些不足,但是在功能完善性上还是非常适合用来学习和做二次开发的。