Android-Kamera PreviewCallback nicht als 4.1
Habe ich eine Anwendung, um Kamera-Vorschau-frames mit einer Oberfläche. Es funktioniert auf Android 4.0.4, aber es funktioniert nicht mit Jelly Bean 4.1.2 auf dem gleichen Gerät nach dem update. Einfach das callback wird nie zurück gerufen. Hier ist der code: Schnitt ein wenig:
public class Panel extends Activity {
Camera myCamera;
int cameraId = -1;
MyCameraSurfaceView myCameraSurfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_panel);
myCamera = getCameraInstance();
myCamera.setPreviewCallback(new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Log.d("Camera Preview", data.length + "");
}
});
myCameraSurfaceView = new MyCameraSurfaceView(this, myCamera);
FrameLayout myCameraPreview = (FrameLayout) findViewById(R.id.videoview);
myCameraPreview.addView(myCameraSurfaceView);
}
private Camera getCameraInstance() {
Camera c = null;
try {
c = Camera.open();
} catch (Exception e) {
e.printStackTrace();
}
return c;
}
public class MyCameraSurfaceView extends SurfaceView implements
SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
public MyCameraSurfaceView(Context context, Camera camera) {
super(context);
mCamera = camera;
mHolder = getHolder();
mHolder.addCallback(this);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
} catch (IOException e) {
}
}
}
}
Das video-frames angezeigt wird, auf die Aktivität, so dass ich kann nicht herausfinden, was ich falsch mache.
- Ist Ihre surfaceCreated immer genannt?
- Sorry, habe ich geändert der code vor langer Zeit, ich bin mir nicht sicher jetzt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich schrieb den code mit einem anderen tutorial. Es funktioniert, aber jetzt langsamer. Ich weiß nicht den genauen Grund (kann es aufgrund von durchgesickerten N7000 ROM, das ich benutze, kann es ein bug oder ist dies unterschiedlich realisiert in 4.1, nicht sicher)
CameraPreview.java
PanelActivity.java