【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;
}
其余代码参照前篇;
推荐阅读
- URL转Drawable之 Android中获取网络图片的三种方法
- 在Android中Intent的概念及应用——Intent过滤器相关选项
- 前16名最佳Grammarly替代品和免费语法检查器推荐合集
- 如何在Google Chrome浏览器中打开拼写检查(操作方法教程)
- 14大假电子邮件生成器推荐合集(用于获取临时电子邮件地址)
- 如何增加Windows 10耳机和扬声器的低音(你知道哪些方法?)
- 如何使用任务计划程序自动关闭Windows 10(操作方法教程)
- 如何在Word 2019/2016/2013中制作一页风景(操作方法教程)
- 13大Windows 10的免费宏记录器软件推荐合集(可自动执行你的任务)