我正在尝试创建一个应用程序,它采取前面的图像,然后返回图像上的单个活动意图,我的前置摄像头代码与下面相同,工作完全正常我甚至调用完成来破坏表面和内部onSurfaceDestroy()我调用initBackCam( )下面给出的方法再次正常工作直到onSurfaceChanged()在onSurfaceChanged()里面我调用pCamera.takePicture(null,mPictureCallback,mPictureCallback)抛出异常takePicture失败
注意:这个代码工作正常直到kitkat在棒棒糖和棉花糖中失败
我尝试在前后摄像头之间延迟,我试图把后置摄像头的代码放在不同的活动中仍然会抛出相同的错误,我已经发布了相机并在拍照之前调用了startPreview()但仍然会抛出同样的错误
我使用了以下权限
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<uses-feature android:name="android.hardware.camera.back" android:required="false" />
Run Code Online (Sandbox Code Playgroud)
请帮忙!!!!
public static Bitmap bitmap;
public SurfaceHolder pSurfaceHolder;
private Camera pCamera;
private boolean pPreviewRunning = false;
private RelativeLayout pCameraPreview;
private BackCameraService backCam;
private void initBackCamera() {
pCameraPreview = (RelativeLayout) findViewById(R.id.preview_back_camera);
backCam = new BackCameraService(getBaseContext(), pCamera);
pCameraPreview.addView(backCam);
}
public class BackCameraService extends SurfaceView implements SurfaceHolder.Callback {
public Camera pCamera;
private Context pContext;
Camera.PictureCallback mBackPictureCallback = new Camera.PictureCallback() {
public void onPictureTaken(byte[] …Run Code Online (Sandbox Code Playgroud)