(android硬件应用实战)摄像头拍照实现和总结
在實現攝像頭拍照功能應用之前,考慮兩個風險
【1】?????? 你的應用不是每一款android 機器都可以使用
主要原因:
???? 攝像頭拍照功能執行的過程為? 應用調用android系統API-->系統API,調用底層驅動-->底層驅動驅動硬件
???? 一般的android手機有廠商自定寫驅動,實現操作系統,一些定制小廠商的android系統API實現,不是那怎完整,或者就是不支持,導致的結果是,你的應用裝上去就彈出應用程序異常。
【2】?????? 你的應用在不同的型號,品牌機器上執行過程中,反應時間也不一樣
主要原因:當前android手機的性能還是有限的,在不同配置先下,手機硬件執行的反應時間也不一樣。舉例:調用鏡頭,鏡頭初始化的時間,鏡頭響應拍照的指令的時間,等
?
前沿: 本文實戰的應用為定時連拍照片,拍照過程中沒有閃光等,沒有聲音,下面是對應用實現過程中,對調用攝像頭,進行拍照的總結
?
1 拍照第一步 初始化Camera
?? 初始化過程
? 獲取Camera實例
?
camera =Camera.open();?
設置鏡頭的參數 (無閃光燈,且鏡頭角度轉90度,注:默認攝像頭是橫拍得)
?
Camera.Parameters parameters=camera.getParameters();parameters.setFlashMode("off");
parameters.set("rotation",90);
camera.setParameters(parameters);
開啟預覽(在執行拍照指令前,必須調用)
?
camera.startPreview();?
2 設置拍照指令,調用 反饋事件,實現獲取照片,并存儲
設置反饋事件:
PictureCallback pictureCallback=new PictureCallback(){public void onPictureTaken(byte[] data,Camera camera)
{
FileOutputStream outSteam=null;
try{
SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss");
String times=format.format((new Date()));
outSteam=new FileOutputStream("/sdcard/MyImages/"+times+".jpg");
outSteam.write(data);
outSteam.close();
}
catch(FileNotFoundException e)
{
Log.d("Camera", "row");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
};
};
?
執行拍照指令
?
3 拍照完成后,釋放鏡頭
camera.takePicture(null, null, pictureCallback);4 配置權限:
在? AndroidManifest.xml 文件中設置攝像頭權限
?<uses-permission android:name="android.permission.CAMERA"/>
?
?
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的(android硬件应用实战)摄像头拍照实现和总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: N!的尾部连续0的个数
- 下一篇: 无知乱吃药