更一般地说,如果设备有多个嵌入式摄像头,是否有办法初始化其中一个?
我没有在Android参考文档中找到它:
三星SHW-M100S有两个摄像头.如果没有参考使用两个相机,任何想法三星怎么做...?
我有一个名为switchCamera的方法,我试图在点击按钮时从前向后切换相机,在一个平滑的过渡中.当我打电话给这个方法时,我的应用程序冻结了 - 我知道我做的不对.有人可以帮我从这里出去吗?
任何帮助深表感谢.
public void switchCamera(){
int camNum = 0;
camNum = Camera.getNumberOfCameras();
int camBackId = Camera.CameraInfo.CAMERA_FACING_BACK;
int camFrontId = Camera.CameraInfo.CAMERA_FACING_FRONT;
Camera.CameraInfo currentCamInfo = new Camera.CameraInfo();
//if camera is running
if (camera != null){
//and there is more than one camera
if (camNum > 1){
//stop current camera
camera.stopPreview();
camera.setPreviewCallback(null);
//camera.takePicture(null, null, PictureCallback);
camera.release();
camera = null;
//stop surfaceHolder?
if (currentCamInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT){
//switch camera to back camera
camera=Camera.open(camBackId);
}
else{
//switch camera to front camera
camera=Camera.open(camFrontId);
}
//switch …Run Code Online (Sandbox Code Playgroud) 我想使用开关摄像头功能.目前我开发了一款相机对象,可以很好地用于后置摄像头,但不能用于前置摄像头.我无法找到前后摄像头之间切换的解决方案.这是我的代码..!
public class MyCamera extends Activity implements SurfaceHolder.Callback,
Camera.ShutterCallback, Camera.PictureCallback {
Camera mCamera;
SurfaceView mPreview;
String filePath;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.camera_preview);
mPreview = (SurfaceView) findViewById(R.id.preview);
mPreview.getHolder().addCallback(this);
mPreview.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mCamera = Camera.open();
}
@Override
public void onPause() {
super.onPause();
mCamera.stopPreview();
}
@Override
public void onDestroy() {
super.onDestroy();
mCamera.release();
Log.d("CAMERA", "Destroy");
}
public void onCancelClick(View v) {
finish();
}
public void onSnapClick(View v) {
mCamera.takePicture(this, null, null, this);
}
@Override
public void onShutter() {
Toast.makeText(this, "Click!", Toast.LENGTH_SHORT).show();
}
@Override …Run Code Online (Sandbox Code Playgroud)