Androidシステムでシステムのフロントカメラを呼び出す方法
方式はMediaStoreを採用し、システムのオリジナルカメラを呼び出す.
1
2
3
4
5
6
7
8
もう一つの方法はCameraフレームワークを採用しており、以前のバージョンのSDKではCameraのみだった.Open()メソッドは、バックグラウンドカメラを呼び出すために使用されます.これで、このメソッドは、フロントカメラかバックグラウンドカメラかを決定するパラメータを受け入れます.また、新しいCamerainfoクラスとgetCameraInfoメソッドに基づいてAndroidデバイス上の詳細なカメラ情報を取得し、getNumberOfCameras()によってカメラの数を取得します.典型的な呼び出し方法は次のとおりです.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Cameraフレームワークを採用する利点は、setDisplayOrientation、Cameraなどの大量のAPIを提供することにある.Parametersは強力な機能を実現し、urfaceHolderを結合する.Callback、ShutterCallback、PictureCallbackなどのインタフェースの後にインタフェースと機能のカスタマイズを行うことができ、必要なインタフェースレイアウトと画像処理効果を自由に実現することができます.たとえば、次のようなインタフェースがあります.
1
2
3
4
5
6
7
8
Intent intent =
new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(
"camerasensortype"
,
2
);
//
intent.putExtra(
"autofocus"
,
true
);
//
intent.putExtra(
"fullScreen"
,
false
);
//
intent.putExtra(
"showActionIcons"
,
false
);
startActivityForResult(intent, PICK_FROM_CAMERA);
もう一つの方法はCameraフレームワークを採用しており、以前のバージョンのSDKではCameraのみだった.Open()メソッドは、バックグラウンドカメラを呼び出すために使用されます.これで、このメソッドは、フロントカメラかバックグラウンドカメラかを決定するパラメータを受け入れます.また、新しいCamerainfoクラスとgetCameraInfoメソッドに基づいてAndroidデバイス上の詳細なカメラ情報を取得し、getNumberOfCameras()によってカメラの数を取得します.典型的な呼び出し方法は次のとおりです.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int
cameraCount =
0
;
Camera cam =
null
;
Camera.CameraInfo cameraInfo =
new
Camera.CameraInfo();
cameraCount = Camera.getNumberOfCameras();
// get cameras number
for
(
int
camIdx =
0
; camIdx < cameraCount;camIdx++ ) {
Camera.getCameraInfo( camIdx, cameraInfo );
// get camerainfo
if
( cameraInfo.facing ==Camera.CameraInfo.CAMERA_FACING_FRONT ) {
// ,
// CAMERA_FACING_FRONT CAMERA_FACING_BACK
try
{
cam = Camera.open( camIdx );
}
catch
(RuntimeExceptione) {
e.printStackTrace();
}
}
Cameraフレームワークを採用する利点は、setDisplayOrientation、Cameraなどの大量のAPIを提供することにある.Parametersは強力な機能を実現し、urfaceHolderを結合する.Callback、ShutterCallback、PictureCallbackなどのインタフェースの後にインタフェースと機能のカスタマイズを行うことができ、必要なインタフェースレイアウトと画像処理効果を自由に実現することができます.たとえば、次のようなインタフェースがあります.