




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、百度文庫-讓每個人平等地提升自我android多媒體和相機詳解十置頂android多媒體和相機詳解十分類:android 開發2012-07-25 08:20266人閱讀評論(1)收藏舉報檢測可用的特性java view plaincopy?/ get cameraparameters camera.parameters params =mcamera.getparameters(); list<string> focusmodes=params.getsupportedfocusmodes(); if(focusmodes.contains(camera.parameters.f
2、ocus_mode_auto) / autofocus mode is supported 你可以對大多數相機特性使用以上所示方法.camera.parameters對象提供了一個 getsupported(),issupported。or getmax()方法來確定一個特性是否被支持.如果你的應用需要特定的相機特性,你可以通過在你的應用的manifest文件中添加請求.當你聲明要使用特定 相機特性,比如閃光燈和自動對焦,google play就會阻止你的應用被安裝到不支持這些特性的設備上.使用相機特性當設置要使用的相機特性時,首先要理解的是不是所有的設備都支持所有的特性.另外,一個特性可能被
3、在不同的級別 上支持或帶有不同的選項.因此,當你開發一個相機應用時,需要決定支持哪些特性以及支持到什么級別.當決定之后, 你應在代碼中包含檢測設備是否支持所需特性,然后在不支 持時要有優雅的誤處理.你可以通過獲取一個相機參數對象的實例來檢測,并且檢測相關的方法們.下面的代碼 向你展示了如何得到一個camera.parameters對象并檢測是否支持自動對焦特性:大多數相機特性都可以通過camera.parameters進行管理.你要獲取此對象,首先獲取一 個相機對象的實例,然后調用getparameters()方法.改變所獲取的parameter對象,然后把它設置回相機對象,就像下 面所演示的
4、:java view plaincopy?/ 獲取 camera parameters camera.parameters params = mcamera.getparameters(); / 設 置聚焦模式params.setfocusmode(camera.parameters.focus_mode_a uto); / 設置 camera parametersmcamera.setparameters(params);此方法對于絕大多數相機特性都有效,并且大多數參數可以 在任何時刻進行改變.對于參數的改變通常都是馬上在應用 的相機預覽中表現由來.在軟件解度看,參數的改變可能經 過多幀后才
5、能生效,因為硬件要處理新的指令然后發送更新 的圖像數據.重要:一些相機特性不能被任務改變.特別的,改變相機預覽的大小或方向需要你首先停止預覽,改變預覽 大小或方向,然后重啟預覽.從 android 4.0 (api level 14), 預覽方向可以不用重啟而改變.其它的相機特性需要更多的 代碼,包括: l metering and focus areasl face detectionl ime lapse video測光與聚焦區域在一些情況下攝像,自動對焦和測光不能產生期望的結果. 從android 4.0 (api level 14)開始,你的 相機應用可以提供額外的控制,允許你的應用或
6、用戶指定圖 像中的某塊區域進行聚焦或曝光級別設置,然后把這些值傳 給相機,以應用于抓取像片或錄制視頻.測光和聚焦區域的工作方式與其它相機特性十分相似,你通過 camera.parameters對象控制它們.下面的代碼演示了為一個 相機實例設置兩個測光區域:創建一個相機實例javaview plaincopy?mcamera = getcamerainstance(); /設置 相機參數們camera.parameters params =mcamera.getparameters(); if(params.getmaxnummeteringareas() > 0) 檢查是否支持測光區域
7、list<camera.area> meteringareas = new arraylist<camera.area>();rect arearectl=new rect(-100, -100, 100, 100);/ 在圖像的中心指定一個區域 meteringareas.add(new camera.area(arearect1, 600); / 設置寬度到 60% rect arearect2 = new rect(800, -1000, 1000, -800); /在圖像的右上角指定一個 區域 meteringareas.add(new camera.area(
8、arearect2, 400);/收置寬度為40% params.setmeteringareas(meteringareas); mcamera.setparameters(params);camera.area對象包含兩個數據參數:一個 rect對象指定了 相機視口中的一塊區域,還有一個寬度,告訴相機在測光或 聚焦計算中此區域的重要程度. camera.area對象的rect字 段描述了一個矩形區域在一個2000 x 2000個單元格組成的區域中的映射位置.坐標 -1000,-1000代表了 top, left,并且 坐標1000, 1000代表了 bottom, right ,如下面示意
9、圖所示: 圖1.紅線表示在相機預覽中指定一個 camera.area所在的 坐標系.藍框表示一個相機區域的位置和形狀,其坐標值為:333,333,667,667 .此坐標系的邊界總是與相機預覽圖像的外 邊界一至,并且不會隨著變焦變大或變小.同樣的,使用 camera.setdisplayorientation()旋轉預覽圖像也不會改變做標 系.人臉檢測對于包含人的圖像,臉往往是圖像中最重要的 部分,并且在拍照時,臉部被用于對焦和白平衡.android 4.0 (api level 14)框架提供了識別面部的和跟據其計算圖像設 置的api們.注:當啟用面部檢測特性時, setwhitebalan
10、ce(string), setfocusareas(list)和 setmeteringareas(list)不再起作用.使用面部檢測特性通常需要以下幾步:l檢查設備是否支持面部檢測l創建一個面部檢測監聽器l添加面部檢測監聽器到你的相機對象.l預覽開始后開始面部檢測(并且每次重啟 預覽后同樣)面部檢測特性不是在所有的設備上都支持.你可以調用 getmaxnumdetectedfaces()來檢測是否支 持.為了接收到面部檢測的通知并作曲響應,你的相機應用 中必須為面部檢測事件設置一個監聽器.所以你必須創建一 個監聽類,它實現 camera.facedetectionlistener 接口,如下
11、 代碼所示:java view plaincopy?class myfacedetectionlistener implements camera.facedetectionlisteneroverride public voidonfacedetection(face口 faces, camera camera) if(faces.length > 0)log.d(facedetection,face detected: + faces.length +face 1 location x: + faces0.rect.centerx() +y: + faces0.rect.center
12、y() ); 創建此類后,你就可以把它設置給你的應用的相機對象,如下 代碼所示:java viewplaincopy?mcamera.setfacedetectionlistener(new myfacedetectionlistener();你的應用必須在每次啟動(或重啟)預覽時啟動面部檢測.創建一個方法專用于開啟面部檢測,你便可以在需要時調用 它,如下例如示:java view plaincopy?public voidstartfacedetection() / try starting face detection camera.parameters params = mcamera.
13、getparameters();/ start face detection only *after* preview has started if (params.getmaxnumdetectedfaces() > 0)/camera supports face detection, so can start it: mcamera.startfacedetection(); 你必須在每次開始(或重啟)預覽時開啟臉部檢測.如果你 使用u創建一個預覽類u 一節中的預覽類,把你的startfacedetection()方法添力口至 u 你的預覽類的surfacecreated()和sur
14、facechanged()方法中,如下面代碼所示: java view plaincopy?public void surfacecreated(surfaceholder holder) trymcamera.setpreviewdisplay(holder);mcamera.startpreview();startfacedetection(); start face detection feature catch (loexception e)log.d(tag, error setting camera preview: +e.getmessage(); public void sur
15、facechanged(surfaceholder holder, int format, int w, int h) if (mholder.getsurface() = null)/preview surface does not existlog.d(tag,mholder.getsurface() = null);return;try mcamera.stoppreview(); catch(exception e)/ ignore: tried to stop a non-existentpreviewlog.d(tag , error stopping camerapreview: + e.getmessage(); trymcamera.setpreviewdisplay(mholder);mcamera.startpreview();startfacedetection();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高一下學期數學備課組工作計劃
- 餐飲行業消防設備維護與服務措施
- 2025年湖南美術出版社二年級下冊美術專業教師培訓計劃
- 2025年中國擠出板材市場調查研究報告
- 教育行政部門信息技術應用能力提升計劃
- 圖書館志愿者職責與服務流程
- 基礎教育語文教學創新方法
- 小學一年級上學期信息技術應用計劃
- 科研機構科研誠信建設職責分配
- 2025年中國居民身份證像采集系統市場調查研究報告
- 2024-2025學年下學期高一語文期中必刷常考題之作文
- 安徽省示范高中皖北協作區2025屆高三3月聯考試卷語文試題(含答案)
- 兒童福利政策課件解讀
- 公司關聯擔保效力裁判規則完善研究
- 茶臺買賣合同5篇
- 遼寧省營口市大石橋市第二初級中學2024-2025學年九年級下學期開學考試數學試卷
- 2025年法治素養考試試題及答案
- 居室空間設計 課件 項目一居室空間設計概述
- 2024年北京市中考滿分作文《盤中餐》
- 沖床基礎板施工方案
- 《鎂鋁合金的腐蝕與防護》課件
評論
0/150
提交評論