1.傳統方式
camera.setPreviewCallback(this);
camera.setPreviewDisplay(holder);
@Override public void onPreviewFrame(byte[] data, Camera camera) { Log.i("jack", "onPreviewFrame " ); }
2.另外一種
camera.setPreviewCallback(this); //預覽參數 int size = setFixPictureWidth * setFixPictureHeight; size = size * ImageFormat.getBitsPerPixel(camera.getParameters().getPreviewFormat()) / 8; //回調必須用到 mBuffer = new byte[size]; camera.addCallbackBuffer(mBuffer); camera.setPreviewCallbackWithBuffer(this); SurfaceTexture mSurfaceTexture = new SurfaceTexture(MAGIC_TEXTURE_ID); camera.setPreviewTexture(mSurfaceTexture); @Override public void onPreviewFrame(byte[] data, Camera camera) { Log.i("jack", "onPreviewFrame " ); //必須這樣使用 camera.addCallbackBuffer(mBuffer); }