简易的自定义录像机
来源:互联网 发布:Linux持续ping 编辑:程序博客网 时间:2024/04/28 00:09
录像机和照相机的原理差不多,都是需要设置一系列参数具体看代码,添加权限等
简易的布局文件
android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/sv_surfaceView_video"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bt_button_start" android:text="开始"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/bt_button_stop" android:text="停止"/>
简易的主要代码
public class MediaVideo extends AppCompatActivity { private SurfaceView sv_surfaceView_video; private Button bt_button_start; private Button bt_button_stop; private MediaRecorder mediaRecorder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_media_video); sv_surfaceView_video = (SurfaceView) findViewById(R.id.sv_surfaceView_video); bt_button_start = (Button) findViewById(R.id.bt_button_start); bt_button_stop = (Button) findViewById(R.id.bt_button_stop); //实例化媒体播放器 mediaRecorder = new MediaRecorder(); bt_button_start.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mediaRecorder.reset(); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); //设置格式 mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //设置保存路径 mediaRecorder.setOutputFile("/mnt/sdcard/G150820_" + System.currentTimeMillis() + ".mp4"); mediaRecorder.setPreviewDisplay(sv_surfaceView_video.getHolder().getSurface()); try { mediaRecorder.prepare(); mediaRecorder.start(); } catch (IOException e) { e.printStackTrace(); } } }); bt_button_stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (mediaRecorder != null) { mediaRecorder.stop(); mediaRecorder.release(); mediaRecorder = null; } } }); }}
还要配置权限
<!-- 写入内存卡 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 打开相机的权限 --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
0 0
- 简易的自定义录像机
- Android简易录像机
- MediaRecorder制作的录像机
- 简易的自定义照相机
- 简易的自定义闹钟
- Linux下的屏幕录像机
- 简易的自定义播放器
- 基于Linux的录像机:Neuros OSD
- OpenCV实例:基于videoInput的视频录像机
- 用开源的 ffmpeg 实现屏幕录像机
- 项目1----------写自己的android录像机
- 录音机和录像机的输入通路
- 录音机和录像机的输入通路SPELayer
- android自定义组件的简易实现
- Android 一个简易的自定义软键盘
- 一招教你最简易的自定义Dialog
- 最简易的自定义ListView适配器
- python自定义一个非常简易的模块
- Linux nc命令详解
- numpy.cov以及corrcoef
- 数据结构实验之二叉树二:遍历二叉树
- 【不全,仅参考】iOS开发数据库操作之SQLite及Mysql操作实例
- 详解log4j2(下) - Async/MongoDB/Flume Appender 按日志级别区分文件输出
- 简易的自定义录像机
- Linux环境进程间通信(五): 共享内存(上)
- 雅虎开源TensorflowOnSpark,Ubuntu配置安装TensorflowOnSpark
- PAT BASIC LEVEL 1062. 最简分数(20)
- EL表达式无效的问题
- Centos6.4 下使用 Qt webkitwidgets 模块报错
- nginx 虚拟主机
- 如何将下载的影像变换为西安80坐标?
- java单例模式详解