CAMERAS_SUPPORT_MAX
camera_get_number_of_cameras()
函数中变量camInfoTmp[]
相关代码该部分的修改要生效的话,需要进行全编译
AndroidManifest.xml
MainActivity.java
package com.example.cameraapplication;import androidx.appcompat.app.AppCompatActivity;import android.hardware.Camera;
import android.os.Bundle;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.Toast;import java.util.ArrayList;
import java.util.List;public class MainActivity extends AppCompatActivity {private static final String TAG = MainActivity.class.getSimpleName();Camera camera1, camera2, camera3, camera4;SurfaceHolder surfaceHolder1, surfaceHolder2, surfaceHolder3, surfaceHolder4;SurfaceView surfaceView1, surfaceView2, surfaceView3, surfaceView4;List cameraList = new ArrayList<>();List surfaceHolderList = new ArrayList<>();List surfaceViewList = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);surfaceView1 = findViewById(R.id.camera_surface_view1);surfaceView2 = findViewById(R.id.camera_surface_view2);surfaceView3 = findViewById(R.id.camera_surface_view3);surfaceView4 = findViewById(R.id.camera_surface_view4);cameraList.add(camera1);cameraList.add(camera2);cameraList.add(camera3);cameraList.add(camera4);surfaceHolderList.add(surfaceHolder1);surfaceHolderList.add(surfaceHolder2);surfaceHolderList.add(surfaceHolder3);surfaceHolderList.add(surfaceHolder4);surfaceViewList.add(surfaceView1);surfaceViewList.add(surfaceView2);surfaceViewList.add(surfaceView3);surfaceViewList.add(surfaceView4);for(int i=0; iinitCamera(i, cameraList.get(i), surfaceHolderList.get(i), surfaceViewList.get(i));}int number = Camera.getNumberOfCameras();//得到摄像头的个数Toast.makeText(MainActivity.this, "摄像头个数:"+number, Toast.LENGTH_LONG).show();}private void initCamera(int number, Camera camera, SurfaceHolder surfaceHolder, SurfaceView surfaceView){try{camera = Camera.open(number);surfaceHolder = surfaceView.getHolder();surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);final Camera mCamera = camera;surfaceHolder.addCallback(new SurfaceHolder.Callback() {@Overridepublic void surfaceCreated(SurfaceHolder surfaceHolder) {try {if (mCamera!=null) {mCamera.setPreviewDisplay(surfaceHolder);mCamera.setDisplayOrientation(90);mCamera.startPreview();}} catch (Exception e) {e.printStackTrace();}}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {releaseCamera(mCamera);}});}catch (Exception e){e.printStackTrace();}}/*** 释放相机资源*/private void releaseCamera(Camera camera) {if (camera != null) {camera.setPreviewCallback(null);camera.stopPreview();camera.release();camera = null;}}/*** 释放相机资源*/private void releaseAllCamera() {for(int i=0; iif (cameraList.get(i) != null) {cameraList.get(i).setPreviewCallback(null);cameraList.get(i).stopPreview();cameraList.get(i).release();cameraList.set(i, null);}}}
}
activity_main.xml
觉得好,就一键三连呗(点赞+收藏+关注)