在使用Camera.PreviewCallback实现时,初始化相机并开始预览(Camera.startPrevew())后,onPreviewFrame会被无故障地调用.问题是,如果我使用MediaRecorder onPreviewFrame进行视频录制,则不再调用.
据我所知,当使用MediaRecorder录制视频时会停止Camera.PreviewCallback,但为什么不能重启?
我曾尝试重置相机预览回调(setPreviewCallback(回调))并重新启动startPreview,但同时我有一个预览出现到onPreviewFrame没有呼叫.
我有一个应用程序来获取带有曲面的相机预览帧.它适用于Android 4.0.4,但在更新后它不适用于同一设备上的Jelly Bean,4.1.2.简单地说,回调永远不会被回调.这是代码:剪了一下:
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; …Run Code Online (Sandbox Code Playgroud)