如何以编程方式为 android 启用前置摄像头而不是后置摄像头?
How to enable front camera instead of rear camera for android programmatically?
我用的是旧的 phone 它的后置摄像头损坏了,所以我想将我的默认摄像头设置为前置摄像头。是否可以每次打开相机应用程序时都打开前置摄像头?
Camera mCamera;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCamera= Camera.open(1);
}
注:
0 对于 CAMERA_FACING_BACK
1 代表 CAMERA_FACING_FRONT
试试这个!
Camera.open(android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);//avoid passing hardcode values
这可能会有所帮助。来源 URL:this
Button otherCamera = (Button) findViewById(R.id.OtherCamera);
otherCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (inPreview) {
camera.stopPreview();
}
//NB: if you don't release the current camera before switching, you app will crash
camera.release();
//swap the id of the camera to be used
if(currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK){
currentCameraId = Camera.CameraInfo.CAMERA_FACING_FRONT;
}
else {
currentCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
}
camera = Camera.open(currentCameraId);
try {
camera.setPreviewDisplay(previewHolder);
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();
}
我用的是旧的 phone 它的后置摄像头损坏了,所以我想将我的默认摄像头设置为前置摄像头。是否可以每次打开相机应用程序时都打开前置摄像头?
Camera mCamera;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCamera= Camera.open(1);
}
注:
0 对于 CAMERA_FACING_BACK
1 代表 CAMERA_FACING_FRONT
试试这个!
Camera.open(android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT);//avoid passing hardcode values
这可能会有所帮助。来源 URL:this
Button otherCamera = (Button) findViewById(R.id.OtherCamera);
otherCamera.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (inPreview) {
camera.stopPreview();
}
//NB: if you don't release the current camera before switching, you app will crash
camera.release();
//swap the id of the camera to be used
if(currentCameraId == Camera.CameraInfo.CAMERA_FACING_BACK){
currentCameraId = Camera.CameraInfo.CAMERA_FACING_FRONT;
}
else {
currentCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
}
camera = Camera.open(currentCameraId);
try {
camera.setPreviewDisplay(previewHolder);
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();
}