我想通过意图捕捉图像捕获映像意图不点击拍照按钮再次
意向cameraIntent =新意图(android.provider.MediaStore.ACTION_IMAGE_CAPTURE)
但问题是,这种代码相机启动,用户必须点击相机按钮捕捉图像,但我想要的是,相机sholud开始和拍照,没有任何furthur与用户furthur互动
我想这样做使用INTENT
我想通过意图捕捉图像捕获映像意图不点击拍照按钮再次
意向cameraIntent =新意图(android.provider.MediaStore.ACTION_IMAGE_CAPTURE)
但问题是,这种代码相机启动,用户必须点击相机按钮捕捉图像,但我想要的是,相机sholud开始和拍照,没有任何furthur与用户furthur互动
我想这样做使用INTENT
这不能做。只有两种选择:
通过意向调用相机应用程序。然后,用户使用正常的方式相机应用程序 - 即按下按钮时,准备好了。
使用Camera
类 - 这是比通过意向运行相机应用程序更多的工作。但它可以让你完全控制。
当你调用摄像头的意图,你基本上“运行”相机应用(或在此意向登记的其他应用程序),所以基本上,你不能它是如何工作的控制。 您可以用相机API ...看看here
这就是我所采取的方式: 声明摄像机的一个实例,并SurfaceHolder。
创建对象CallBackPicture,并实现对PictureTaken方法
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
Camera.PictureCallback mCall = new Camera.PictureCallback()
{
@Override
public void onPictureTaken(byte[] data, Camera camera)
{
//DO YOUR STUFF
}
};
// Open the instance of camera
mCamera = Camera.open();
try {
// Call the preview (not sure if it is working without this call
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.startPreview();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(mCamera == null) Log.i(TAG, "mCamera is null");
// Will call the onPictureTaken implemented above
// Look at the documentation : public final void takePicture
mCamera.takePicture(null, null, mCall);
mCamera.stopPreview();
mCamera.release();
(当你想拍照推出法)通过修改这个,你应该能够做你想做的.. 唐“别忘了修改manifest.xml中过,但我想你已经做到了!
编辑:有时会有一些问题,stoppreview()和release().. 所以,我要做的事情是:
if (mCamera != null) {
mCamera.release();
mCamera = null;
}
mCamera = Camera.open();
etc...