如今隨着音視頻的應用愈來愈多,直接使用系統原生相機進行拍照裁剪和拍視頻,已經不能知足需求了。
須要經過Camera API進行自定義相機開發,知足一些複雜的業務場景,開篇先介紹Camera的基礎知識,爲後面Camera開發提供支持。html
基礎知識
Android Framework提供Camera API來實現拍照與錄製視頻的功能,目前Android有三類API,android
- Camera 此類是用於控制設備相機的舊版 API,現已棄用,在Android5.0如下使用
- Camera2 此軟件包是用於控制設備相機的主要 API,Android5.0以上使用
- CameraX 基於Camera 2 API封裝,簡化了開發流程,並增長生命週期控制
相關開發類
術語
- ISO(感光度) CMOS(或膠捲)對光線的敏感程度,用ISO100的膠捲,相機2秒能夠正確曝光的話,一樣光線條件下用ISO200的膠捲只須要1秒便可,用ISO400則只要0.5秒。
常見的標準:ISO100,ISO200,ISO400
- 曝光時間 曝光時間是爲了將光投射到相機感光片上,相機快門所要打開相當閉的時間
- 光圈 用來控制光線透過鏡頭,進入相機內感光面光量的裝置
- 焦距 指的是平行的光線穿過鏡片後,所聚集的焦點至鏡片間之距離。
數值越小,表明能夠拍攝的角度越廣,數值越大,表明能夠拍攝的角度越小
- 景深 拍攝時,當鏡頭彙集於某個被攝體時,這個被攝體就能在相機上結成清晰影像。使被攝體產生較爲清晰影像的縱深的範圍叫景深
- 測光 測光模式:中央平均測光(average metering)、中央局部測光、點測光(spot metering)、多點測光、評價測光
- 自動曝光(Auto Exposure) 相機根據光線條件自動來調整曝光時間等來肯定曝光量
- 對焦 對焦模式:自動對焦 AE(Auto Focus)、手動對焦 MF(Manual Focus)
自動對焦分爲對比度對焦(contrast)、相位對焦(PDAF: Phase Detection Auto Focus)和混合對焦(hybrid)
- 閃光燈(Flashlight) 經過閃光燈打閃照亮物體來達到拍出清晰圖片的目的
- ScreenFlash 經過屏幕打閃,照亮周圍物體,拍出高清圖片
- 高動態範圍圖像(HDR) HDR全稱是High-Dynamic Range,即高動態範圍圖像技術。在拍照過程當中開啓HDR,可讓原先的暗場景變得更明亮更通透。
- 零延時拍照(ZSD) 爲了減小拍照延時,讓拍照&回顯瞬間完成的一種技術
- 連拍(ContinuousShot) 經過節約數據傳輸時間來捕捉攝影時機
- 預覽大小(PreviewSize) 相機預覽圖片的大小
- 拍照大小(PictureSize) 拍照生成圖片的大小
- 自動白平衡(Auto white balance) AWB(Auto white balance),自動白平衡是相機的默認設置,相機中有一結構複雜的矩形圖,它可決定畫面中的白平衡基準點,以此來達到白平衡調校
- 對比度 圖像最亮和最暗之間的區域之間的比率,比值越大,從黑到白的漸變層次就越多,從而色彩表現越豐富
- 飽和度 指色彩的鮮豔程度
- 銳度 是反映圖像平面清晰度和圖像邊緣銳利程度的一個指標
相機功能
Android 支持多種相機功能,您可以使用相機應用控制這些功能,如圖片格式、閃光模式、對焦設置等等。
經過Camera.Parameters
能夠設置大部分的功能,下面介紹幾個重要功能:post
區域測光和對焦
從 Android 4.0(API 級別 14)開始,經過Camera.Parameters
來肯定對焦或亮度設置的區域,而後進行拍照或者錄像google
人臉檢測
這個和真正的人臉識別是不同的 ,這裏僅僅是檢測人臉。
經過照片分析,檢測照片中是否包含人臉,使用人臉識別技術來識別人臉並計算照片設置code
延時視頻
延時視頻功能容許用戶將間隔幾秒鐘或幾分鐘拍攝的圖片串聯起來,建立視頻剪輯。使用MediaRecorder
錄製時間流逝片斷的圖像。cdn
其餘重要功能API: 視頻
參考