Android 中使用MediaRecorder实现视频录制功能

【Android 中使用MediaRecorder实现视频录制功能】学向勤中得,萤窗万卷书。这篇文章主要讲述Android 中使用MediaRecorder实现视频录制功能相关的知识,希望能为你提供帮助。

设置视频录制的简易界面
< SurfaceView
android:id="@+id/surface"
android:layout_width="match_parent"
android:layout_height="match_parent" />
< LinearLayout
android:layout_above="@+id/surface"
android:layout_width="match_parent"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:orientation="horizontal"
android:layout_height="wrap_content">
< Button
android:id="@+id/start"
android:text="录制"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
< Button
android:layout_below="@+id/start"
android:id="@+id/stop"
android:text="停止"
android:enabled="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
< /LinearLayout>
java代码

第一部分:声明

private Button start,stop;
private SurfaceView surface;
private MediaRecorder recorder;
private boolean isRecording; //录制的状态

第二部分:加载数据

private void initView(){
start=(Button)findViewById(R.id.start);
stop=(Button)findViewById(R.id.stop);
stop.setOnClickListener(this);
start.setOnClickListener(this);
surface=(SurfaceView)findViewById(R.id.surface);
//设置横屏显示
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
//设置全屏显示
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
//设置半透明
getWindow().setFormat(PixelFormat.TRANSLUCENT);
//设置surfaceView,分辨率的设置
surface.getHolder().setFixedSize(1280,720);
//设置屏幕常亮
surface.getHolder().setKeepScreenOn(true)

recorder=new MediaRecorder();


}
第三部分:开始录制

//开始录制
public void startRecording(){
//初始化
recorder.setAudiosource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//设置视频的录制参数,视频的格式
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
//设置音频的编码
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
//设置视频的编码格式
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
//设置录入的视频大小
recorder.setVideoSize(176, 144);
//设置一个视频帧数
recorder.setVideoFrameRate(20);
//设置视频存放的路径
try {
File file =new File(Environment.getExternalStorageDirectory().getCanonicalPath(),"myVideo.mp4");
recorder.setOutputFile(file.getAbsolutePath());

//设置预览
recorder.setPreviewDisplay(surface.getHolder().getSurface());
//准备录制
recorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
recorder.start();
//更改录制状态
isRecording=true;
}
其余代码参照前篇;

 




 






















































































    推荐阅读