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

image.png
項目總體結(jié)構(gòu)

image.png
代碼不難,具體看 github