Forum für diejenigen, die für Android programmieren
Anonymous
Der Vorschau -Callback von Android KitKat (4.x.x) muss SurfaceHolder wünschen?
Post
by Anonymous » 17 Aug 2025, 10:37
Ich habe eine Frage. Und es verwendet keinen Oberflächeninhaber. not called
PreviewCallback and PreviewCallback with buffer are not called
Android Camera PreviewCallback not called in 4.1
Anyone help?
Hier ist mein Code < /p>
Code: Select all
@Override
public void startPreview(String cameraId, int width, int height, int fps) {
this.CameraId = cameraId;
this.Width = width;
this.Height = height;
this.Fps = fps * 1000;
this.CameraId = Integer.parseInt(cameraId);
prepareCamera();
if (this.RenderMethod == MyProject.RENDER_METHOD_NATIVE_SURFACE_TEXTURE) {
MySurfaceRenderer.setSize(this.width, this.height);
}
startBackgroundThread();
openCamera();
}
< /code>
Und dies ist meine Rückrufmethode: < /p>
private Camera.PreviewCallback myCallBack = new Camera.PreviewCallback() {
@Override
public void onPreviewFrame(byte[] data, Camera camera) {
Log.i(TAG, "onPreviewFrame data=" + data);
JNIs.setFrameData(data);
camera.addCallbackBuffer(this.PreviewData);
}
};
< /code>
Und dies ist meine openCamera -Methode: < /p>
private void openCamera() {
if (this.Camera == null) {
this.Camera = Camera.open(this.CameraId);
}
SurfaceTexture tex = MySurfaceRenderer.getSurfaceTexture();
if (tex != null) {
try {
this.Camera.setPreviewTexture(tex);
} catch (Exception e) {
e.printStackTrace();
}
}
this.Data = new byte[this.width * this.height * 12 / 8];
this.Params = this.Camera.getParameters();
this.Params.setPreviewSize(this.width, this.height);
// focus
set_Focus(this.Params);
// exposure
set_Exposure(this.Params);
this.Camera.setParameters(this.Params);
this.Camera.setPreviewCallbackWithBuffer(myCallBack);
this.Camera.startPreview();
this.Camera.addCallbackBuffer(this.PreviewData);
}
1755419827
Anonymous
Ich habe eine Frage. Und es verwendet keinen Oberflächeninhaber. not called PreviewCallback and PreviewCallback with buffer are not called Android Camera PreviewCallback not called in 4.1 Anyone help? Hier ist mein Code < /p> [code]@Override public void startPreview(String cameraId, int width, int height, int fps) { this.CameraId = cameraId; this.Width = width; this.Height = height; this.Fps = fps * 1000; this.CameraId = Integer.parseInt(cameraId); prepareCamera(); if (this.RenderMethod == MyProject.RENDER_METHOD_NATIVE_SURFACE_TEXTURE) { MySurfaceRenderer.setSize(this.width, this.height); } startBackgroundThread(); openCamera(); } < /code> Und dies ist meine Rückrufmethode: < /p> private Camera.PreviewCallback myCallBack = new Camera.PreviewCallback() { @Override public void onPreviewFrame(byte[] data, Camera camera) { Log.i(TAG, "onPreviewFrame data=" + data); JNIs.setFrameData(data); camera.addCallbackBuffer(this.PreviewData); } }; < /code> Und dies ist meine openCamera -Methode: < /p> private void openCamera() { if (this.Camera == null) { this.Camera = Camera.open(this.CameraId); } SurfaceTexture tex = MySurfaceRenderer.getSurfaceTexture(); if (tex != null) { try { this.Camera.setPreviewTexture(tex); } catch (Exception e) { e.printStackTrace(); } } this.Data = new byte[this.width * this.height * 12 / 8]; this.Params = this.Camera.getParameters(); this.Params.setPreviewSize(this.width, this.height); // focus set_Focus(this.Params); // exposure set_Exposure(this.Params); this.Camera.setParameters(this.Params); this.Camera.setPreviewCallbackWithBuffer(myCallBack); this.Camera.startPreview(); this.Camera.addCallbackBuffer(this.PreviewData); } [/code]
0 Replies
3 Views
Last post by Anonymous
10 Dec 2025, 19:06
0 Replies
36 Views
Last post by Guest
31 Dec 2024, 12:15
0 Replies
23 Views
Last post by Anonymous
17 Aug 2025, 10:50
0 Replies
25 Views
Last post by Anonymous
17 Aug 2025, 10:50
0 Replies
17 Views
Last post by Anonymous
17 Aug 2025, 10:56