我有摄像机对象和录制视频的代码:
Camera c = Camera.open(CameraInfo.CAMERA_FACING_BACK);
c.lock();
c.setPreviewCallback(mPreviewCallback); // catching frames
c.startPreview();
...
MediaRecorder r = new MediaRecorder();
r.setCamera(c);
r.setVideoSource(MediaRecorder.VideoSource.CAMERA);
r.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
r.setOutputFile(new File(Environment.getExternalStorageDirectory(), "video.mp4").getPath());
r.setVideoFrameRate(10);
r.setVideoSize(640, 480);
r.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
r.setPreviewDisplay(holder.getSurface());
r.prepare();
r.start();
我的代码也不起作用。字符串r.start()
抛出IllegalStateException,因为我在调用c.unlock()
之前没有调用方法r.setCamera(c)
。所以我的问题是:在没有(或代替)使用FFmpeg库和MediaMuxer& amp; MediaCodec API?