Android录制视频(一)(二)

2014-11-24 11:20:11 · 作者: · 浏览: 9
/Call this after setOutFormat() but before prepare().
mMediaRecorder.setVideoFrameRate(15);
//设置预览画面
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());
//设置输出路径
mMediaRecorder.setOutputFile
(Environment.getExternalStorageDirectory()+File.separator+System.currentTimeMillis()+".mp4");
mMediaRecorder.setVideoSize(800, 480);
//设置视频的最大持续时间
mMediaRecorder.setMaxDuration(10000);
//为MediaRecorder设置监听
mMediaRecorder.setOnInfoListener(new OnInfoListener() {
public void onInfo(MediaRecorder mr, int what, int extra) {
if (what==MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
System.out.println("已经达到最长录制时间");
if (mMediaRecorder!=null) {
mMediaRecorder.stop();
mMediaRecorder.release();
mMediaRecorder=null;
}
}
}
});
}
private class ButtonClickListenerImpl implements OnClickListener{
public void onClick(View v) {
if (v.getId()==R.id.start_button) {
try {
initMediaRecorder();
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
if (v.getId()==R.id.stop_button) {
if (mMediaRecorder!=null) {
mMediaRecorder.stop();
mMediaRecorder.release();
mMediaRecorder=null;
}
}
}
}
//SurfaceHolder.Callback接口
public void surfaceCreated(SurfaceHolder holder) {
System.out.println("SurfaceView---->Created");
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
System.out.println("SurfaceView---->Changed");
}
public void surfaceDestroyed(SurfaceHolder holder) {
System.out.println("SurfaceView---->Destroyed");
if (mMediaRecorder!=null) {
mMediaRecorder.stop();
mMediaRecorder.release();
mMediaRecorder=null;
}
}
}
main.xml如下
[ html]
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:id="@+id/surfaceView"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1" />
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >