只需使用MediaRecorder类录制视频。使用媒体记录器时,设置音频和视频源时不要将音频源设置在那里。喜欢这个。
public class MuteVideoRecorderView extends SurfaceView implements
SurfaceHolder.Callback {
private SurfaceHolder mHolder;
private Camera mCamera;
private MediaRecorder mMediaRecorder;
public CamcorderView(Context context, AttributeSet attrs) {
super(context, attrs);
mHolder = getHolder();
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mHolder.addCallback(this);
mCamera = Camera.open();
mRecorder = new MediaRecorder();
}
public void stop() {
mRecorder.stop();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
mCamera.unlock();
mMediaRecorder.setCamera(mCamera);
// Here we will not set mRecorder.setAudio(..);
mMediaRecorder.setVideoSize(int, int);
mMediaRecorder.setVideoFrameRate(int);
mMediaRecorder.setPreviewDisplay(mHolder.getSurface());
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
// change for desired output folder
mMediaRecorder.setOutputFile("/mnt/sdcard/test/work");
try {
mMediaRecorder.prepare();
} catch (IllegalStateException e) {
Log.e("IllegalStateException", e.toString());
} catch (IOException e) {
Log.e("IOException", e.toString());
}
mMediaRecorder.start();
}
}
完整的代码张贴在您链接的那个线程中......它几乎只是复制和粘贴它,它应该工作? – Danieboy
通过这个例如https://github.com/googlesamples/android-Camera2Video –