private Button mBtnStartRecoder;
private Button mBtnStopRecoder;
private SurfaceView mSurfaceView;
private MediaRecorder mMediaRecorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnStartRecoder = (Button) findViewById(R.id.btn_startRecoder);
mBtnStopRecoder = (Button) findViewById(R.id.btn_stopRecoder);
mSurfaceView = (SurfaceView) findViewById(R.id.sf);
mSurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mSurfaceView.getHolder().setFixedSize(
320,
280);
mSurfaceView.getHolder().setKeepScreenOn(
true);
mMediaRecorder =
new MediaRecorder();
mMediaRecorder.reset();
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mMediaRecorder.setAudioChannels(
2);
mMediaRecorder.setMaxDuration(
600000);
mMediaRecorder.setMaxFileSize(
1024*
1024);
mMediaRecorder.setAudioEncodingBitRate(
128);
mMediaRecorder.setOrientationHint(
90);
File saveFile =
new File(Environment.getExternalStorageDirectory(),
"myvideo.mp4");
mMediaRecorder.setOutputFile(saveFile.getAbsolutePath());
mMediaRecorder.setPreviewDisplay(mSurfaceView.getHolder().getSurface());
/**
* 开始录制
*/
mBtnStartRecoder.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
mMediaRecorder.prepare();
mMediaRecorder.start();
}
catch (IOException e) {
e.printStackTrace();
}
}
});
/**
* 结束录制
*/
mBtnStopRecoder.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
mMediaRecorder.stop();
mMediaRecorder.release();
mMediaRecorder =
null;
}
});
}
<SurfaceView
android:id="@+id/sf"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<Button
android:id="@+id/btn_startRecoder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="开始录制"/>
<Button
android:id="@+id/btn_stopRecoder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="结束录制"/>