Camera相機開發 實現開啟相機

2021-09-25 02:44:17 字數 2596 閱讀 6486

android: camera相機開發知識點介紹了進行camera開發需要了解的知識點

由於6.0 以上的系統需要我們在程式執行的時候進行動態許可權申請,所以我們需要在程式啟動的時候去檢查許可權,有任何乙個必要的許可權被使用者拒絕時,我們就彈窗提示使用者程式因為許可權被拒絕而無法正常工作:

private static final int request_permissions_code = 1;

private static final string required_permissions = ;

@override

protected void onresume()

}/**

* 判斷我們需要的許可權是否被授予,只要有乙個沒有授權,我們都會返回 false。

** @return true 許可權都被授權

*/private boolean isrequiredpermissionsgranted()

}return true;

}

使用者在一台沒有任何攝像頭的手機上安裝你的相機應用程式,是沒有意義的。所以接下來要做的就是在 androidmanifest.xml 中配置一些程式執行時必要的相機特性,如果這些特性不支援,那麼使用者在安裝 apk 的時候就會因為條件不符合而無法安裝

......

我們通過標籤宣告了我們的應用程式必須在具有攝像頭的手機上才能執行。另外你還可以配置更多的特性要求

並不是所有的手機都支援前後置攝像頭,甚至有手機乙個攝像頭都沒有,所以我們首先要確定當前的裝置支援多少個攝像頭

int numberofcameras = camera.getnumberofcameras();// 獲取攝像頭個數
根據android: camera相機開發知識點講到的關於camerainfo的內容我們知道,我們可以通過facing判斷攝像頭是前置還是後置,通過orientation值取校正攝像頭的畫面。接下來,我們看下如何獲取camera.camerainfo例項:

@nullable

private camera.camerainfo mfrontcamerainfo = null;

private int mfrontcameraid = -1;

@nullable

private camera.camerainfo mbackcamerainfo = null;

private int mbackcameraid = -1;

/** * 初始化攝像頭資訊。

*/private void initcamerainfo() else if (camerainfo.facing == camera.camerainfo.camera_facing_front)

}}

從上面的**可以看出camera.camerainfo的獲取非常簡單,只需要你建立乙個camera.camerainfo例項,然後通過camera.getcamerainfo(int, camera.camerainfo)方法就可以將相機資訊填充到你建立的例項中。另外值得注意的一點是,相機的 id 實際上就是從 0 到 numberofcameras 遞增,大部分手機的後置攝像頭的 id 是 0,前置攝像頭的 id 是 1,但是我們最好還是通過facing欄位去判斷比較靠譜

tips:camera.getnumberofcameras() 和 camera.getcamerainfo(int,

camera.camerainfo) 都不需要相機許可權

接下來我們要做的就是呼叫camera.open(int)方法開啟相機了,需要注意的是你必須確保在開啟相機之前已經被授予了相機許可權,否則會拋許可權異常。乙個比較穩妥的做法就是每次開啟相機之前檢查相機許可權

private camera mcamera;

/*** 開啟指定攝像頭

*/private void opencamera()

if (contextcompat.checkselfpermission(this, manifest.permission.camera) == packagemanager.permission_granted) else if (hasbackcamera()) else }}

/*** 判斷是否有前置攝像頭。

** @return true 代表有前置攝像頭

*/private boolean hasfrontcamera()

/*** 判斷是否有後置攝像頭。

** @return true 代表有後置攝像頭

*/private boolean hasbackcamera()

/**

* 關閉相機。

*/private void closecamera()

}

unity3d 相機Camera簡單介紹

一 檢視面板 二 面板介紹 1 ckearflags 空白旗子,把空白的地方顯示 skybox 天空盒子 solider color 純色顯示 depth 只看深度高低 顯示物體 空白不管 黑色 don t clear 只顯示物體,其他都不顯示 具體有待補充 2 background 設定純色的背景...

iOS開發高階 實現類似美顏相機的相機啟動動畫

最近在寫乙個相簿的demo,偶爾看到了美拍的相機過載動畫覺得很有意思,就想在我的相簿demo中加入乙個這種特效,下面把我的想法和實現過程給大家分享一下 這個動效看起來很有特色但是實現起來是非常簡單的,只需要用到calayer和cashapelayer做為展示層,然後通過cabasicanimatio...

NDK 開發實戰 實現相機美顏功能

在 圖形影象處理 實現的美容效果 一文中提到了的美容,採用雙邊濾波演算法來實現,具體的演算法流程和實現思路,大家可以在上篇文章中了解,這篇文章就在不再反覆囉嗦了。這裡我們再次來看下處理效果 上面的效果看似好像不錯,其實存在了大量的問題。從處理速度上來說,雙邊模糊演算法是在二維的高斯函式上新增畫素差值...