為什么要使用 CameraX
借用官方文檔的描述:
- CameraX 提供一致且易用的 API 接口,適用于大多數 Android 設備,并可向后兼容至 Android 5.0。
- 采取了一種具有生命周期感知能力且基于用例的更簡單方式。
- 它還解決了設備兼容性問題,因此您無需在代碼庫中添加設備專屬代碼。
簡而言之就是:集成簡單、兼容好,不要手動處理生命周期。
關于 CameraX 的使用請看官方文檔,文檔已經寫的很好了,這里不在闡述了。
需要實現的功能
- 類似微信聊天功能欄中的"拍攝"功能
- 輕觸拍照
- 長按錄像
- 攝像頭前后鏡頭切換
- 閃光燈(關閉、自動、常開)
- 錄制視頻時是否需要錄制音頻
- 視頻清晰度控制(480p、1080p、2160p等)
- 代碼盡可能少,耦合性低,不需要引入第三方庫
效果展示
截圖照片:
image.png
項目總體結構
image.png
代碼不難,具體看 github