導航:首頁 > 操作系統 > androidcameraapi2

androidcameraapi2

發布時間:2022-09-24 06:18:48

android Camera API 1.0,2.0,3.0 知多少

看到源碼裡面有諸如Camera.h , Camera2.h, Camera3.h的文件,覺得奇怪,後面在Camera3.h

中找到了對前後3個版本的概要性描述。

BTW, 我們看代碼的過程中,如何避免不需要的文件被添加到工程?

我是指: 我只想看Camera3.0的代碼,怎麼去除掉其他版本的呢?

不知道各位是否知道這些牽涉到哪些文件? 謝謝!!

* S1. Version history:
* 1.0: Initial Android camera HAL (Android 4.0) [camera.h]:
*
* - Converted from C3;3; CameraHardwareInterface abstraction layer.
*
* - Supports android.hardware.Camera API.
*
* 2.0: Initial release of expanded-capability HAL (Android 4.2) [camera2.h]:
*
* - Sufficient for implementing existing android.hardware.Camera API.
*
* - Allows for ZSL queue in camera service layer
*
* - Not tested for any new features such manual capture control, Bayer RAW
* capture, reprocessing of RAW data.
* 3.0: First revision of expanded-capability HAL:
*
* - Major version change since the ABI is completely different. No change to
* the required hardware capabilities or operational model from 2.0.
*
* - Reworked input request and stream queue interfaces: Framework calls into
* HAL with next request and stream buffers already dequeued. Sync framework
* support is included, necessary for efficient implementations.
*
* - Moved triggers into requests, most notifications into results.
*
* - Consolidated all callbacks into framework into one structure, and all
* setup methods into a single initialize() call.
* - Made stream configuration into a single call to simplify stream
* management. Bidirectional streams replace STREAM_FROM_STREAM construct.

⑵ android 5.0的攝像頭類修改了嗎

修改了,改為
Camera2是Android5.0中的其中一個新的特性,新的API。與原來的camera API相比,不同之處在於:

原生支持RAW照片輸出突發拍攝模式
制約拍照速度的不再是軟體而是硬體。以Nexus 5為例,解析度全開下Andorid L的連拍速度可達到30fps。

全手動控制
快門、感光度、對焦、測光、硬體視頻防抖等多種參數都被整合到了新的API內。新的API中添加的手動控制功能列表:

感光度手動對焦/AF開關AE/AF/AWB模式AE/AWB鎖硬體視頻防抖連續幀
干貨

Camera2 程序邏輯與原Camera有很大不同。

CameraManager,系統服務,通過 CameraManager去獲得camera設備對象。CameraDevices提供描述相機硬體設備支持可用的和輸出的參數,這些信息通過 CameraCharacteristics獲得,CameraCharacteristics又是從 getCameraCharacteristics(cameraId)獲得,通過freamwork中的源碼發現,其實這里就是直接調用的Camera API介面。

通過camera拍照,應用首先要創建由相機設備的輸出surface組成的拍照會話,createCaptureSession(List, CameraCaptureSession.StateCallback, Handler)。每個surface必須預先設置適當的大小和格式去匹配相機設備的可支持的大小和格式。一個目標surface可以從不同的類中獲取,包括SurfaceView,SurfaceTexture via Surface(SurfaceTexture), MediaCodec, MediaRecorder, Allocation, and ImageReader.

一旦請求被建立,他可以交給活動的拍照會話:一次拍照(one-shot )或者無止境連續拍照或預覽(Repeating)。兩種方法都有一個其他的方式:接受一系列的請求作為burst拍照/重復burst。

⑶ android camera2 用surfaceview輸出預覽圖像畫面拉長

項目當中遇到調整攝像頭位置需要全屏顯示攝像頭預覽界面,過程中發現預覽界面存在無法顯示全,畫面被拉伸的問題。surfaceview的寬高比可能與camera設置的寬高比不一致 ,經測試發現設置Camera 預覽寬高可解決此問題(注意這里設置屏幕物理寬高不起作用,必須設置屏幕解析度)
////通過Resources獲取(無效)
// DisplayMetrics dm = getResources().getDisplayMetrics();
// heigth = dm.heightPixels;
// width = dm.widthPixels;
//獲取屏幕的默認解析度 設置預覽界面長寬解決預覽界面變形顯示不全問題(有效)
Display display = getWindowManager().getDefaultDisplay();
int height = display.getWidth();
int width = display.getHeight();
Camera.Size preSize = CameraUtil.getCloselyPreSize( true , width, height, parameters.getSupportedPreviewSizes());
parameters.setPreviewSize(preSize.width, preSize.height);
Log.e(TAG + "攝像頭尺寸前置" , "width" + preSize.width + "------" + "height" + preSize.height);
camera2.setParameters(parameters);
// 啟動攝像頭預覽
camera2.startPreview();
System.out.println( "camera.startpreview" );

⑷ Android camera2 判斷相機功能是否可控的實例

//Creates a new Camera object to access a particular hardware camera. Camera camera = Camera.open() ; //Returns the current settings for this Camera service. Parameters parameters = camera.getParameters(); //Sets the dimensions for preview pictures. parameters.setPreviewSize(int width, int height) //Sets the dimensions for pictures. parameters.setPictureSize(int width, int height) //你先獲取一下 你手機支持的解析度,不然你不好設置你手機支持的最高解析度 //Creates a single string with all the parameters set in this Parameters object. //camera.getParameters().flatten(); //return String 你看一下返回的字元串,就可以看到很多手機攝像的很多相關參數了。

⑸ android camera開發是用camera2還是camera

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
// your code using Camera API here - is between 1-20
} else if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
// your code using Camera2 API here - is api 21 or higher
}

⑹ android camera2 上怎麼讓textureview全屏

選擇壁紙時有一個小小的技巧,小編在此就和各位機油們分享一下這個小竅門。 目前安卓手機屏幕主流的解析度大致有這么幾種:320x240(高x寬)、480x320、800x480、854x480、960x540。安卓壁紙有這么一個特性:壁紙是會隨著分屏的滑動而移動,所以壁紙的實際解析度比屏幕解析度要大,高度不變,但寬度卻是屏幕的兩倍! 屏幕解析度為320x240的安卓手機,對應的壁紙解析度為:320x480。 屏幕解析度為480x320的安卓手機,對應的壁紙解析度為:640x480。 屏幕解析度為800x480的安卓手機,對應的壁紙解析度為:960x800。 屏幕解析度為800x480的安卓手機,對應的壁紙解析度為:960x800。 屏幕解析度為854x480的安卓手機,對應的壁紙解析度為:960x854。 屏幕解析度為960x540的安卓手機,對應的壁紙解析度為:1080x960。

⑺ Android camera2 判斷相機功能是否可控

轉: 看官方API發現的一行,記錄下來 <manifest ... > <uses-feature android:name="android.hardware.camera" /> ... </manifest ... > 文檔說調用相機功能要增加這行到配置文件里,表明用到相機功能。(貌似根據網上例子沒加這個也能打開默認相機功能。) It's then your responsibility to check for the availabilityof the camera at runtime by callinghasSystemFeature(PackageManager.FEATURE_CAMERA).If a camera is not available, you should then disable your camera features. 要通過這個來檢查設備是否有照相機功能,沒有的話就要根據情況調整,或者是關閉相機功能,避免出錯。

⑻ Android camera2 判斷相機功能是否可控

Float hardwareLevel = mCameraCharacteristics.get(CameraCharacteristics.INFO_SUPPORTED_HARDWARE_LEVEL);

LEGACY < LIMITED < FULL < LEVEL_3. 越靠右邊許可權越大

INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY = 2
INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED = 0
INFO_SUPPORTED_HARDWARE_LEVEL_FULL = 1
INFO_SUPPORTED_HARDWARE_LEVEL_3 = 3

在相應的等級下面會有各自支持的功能,LEGACY為最低許可權
在LIMITED中

閱讀全文

與androidcameraapi2相關的資料

熱點內容
羅麗星克萊爾經典 瀏覽:342
台灣紅羊有哪些經典電影 瀏覽:568
免下載你懂的 瀏覽:975
新建文件夾1女演員三位 瀏覽:740
不用下載就能看的視頻網站 瀏覽:330
我一個神偷硬生生把國家偷成強國 瀏覽:600
樣子是五歲小男孩和郭富城演的 瀏覽:460
韓國演員也美娜 瀏覽:898
陸離是哪部小說的主角 瀏覽:49
華娛開局佟麗婭 瀏覽:17
男男生子小說現代攻姓章 瀏覽:541
永旺星星影院影訊 瀏覽:328
李彩潭巔峰之作 瀏覽:86
彎村紅羊電影 瀏覽:157
我和我的家教老師韓國 瀏覽:102
日本經典高分電影 瀏覽:627
動物真人版電影鳳凰定製 瀏覽:360
海客雲伺服器一個月怎麼算的 瀏覽:161
黑道小說主角外號瘋子 瀏覽:309
書包cc網電子書txt免費下載 瀏覽:354