Android 录制视频
Activity代码:
package eoe.demo.Media;import java.io.File; import java.io.IOException;import android.app.Activity; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;public class VideoActivity extends Activity {private File myRecAudioFile; private SurfaceView mSurfaceView; private SurfaceHolder mSurfaceHolder; private Button buttonStart; private Button buttonStop; private File dir; private MediaRecorder recorder;@Override public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.video);mSurfaceView = (SurfaceView) findViewById(R.id.videoView);mSurfaceHolder = mSurfaceView.getHolder();mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);buttonStart=(Button)findViewById(R.id.start);buttonStop=(Button)findViewById(R.id.stop);File defaultDir = Environment.getExternalStorageDirectory();String path = defaultDir.getAbsolutePath()+File.separator+"V"+File.separator; //创建文件夹存放视频dir = new File(path);if(!dir.exists()){dir.mkdir();}recorder = new MediaRecorder();buttonStart.setOnClickListener(new OnClickListener() { @Overridepublic void onClick(View v) {recorder();} });buttonStop.setOnClickListener(new OnClickListener() { @Overridepublic void onClick(View v) {recorder.stop();recorder.reset();recorder.release();recorder=null;}}); }public void recorder() { try {myRecAudioFile = File.createTempFile("video", ".3gp",dir);//创建临时文件recorder.setPreviewDisplay(mSurfaceHolder.getSurface());//预览recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//视频源recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录音源为麦克风recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//输出格式为3gprecorder.setVideoSize(800, 480);//视频尺寸recorder.setVideoFrameRate(15);//视频帧频率recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//视频编码recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音频编码recorder.setMaxDuration(10000);//最大期限recorder.setOutputFile(myRecAudioFile.getAbsolutePath());//保存路径recorder.prepare();recorder.start(); } catch (IOException e) {e.printStackTrace();}} }
布局代码:
<?xml version="1.0" encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><SurfaceView android:id="@+id/videoView"android:visibility="visible"android:layout_width="320px"android:layout_height="240px"></SurfaceView><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="wrap_content"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="录制"android:id="@+id/start"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/start"android:text="停止"android:id="@+id/stop"/></RelativeLayout></LinearLayout>
AndroidManifest.xml:
<!-- 授予该程序录制声音的权限 --><uses-permission android:name="android.permission.RECORD_AUDIO"/><!-- 授予该程序使用摄像头的权限 --> <uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 授予使用外部存储器的权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Android 录制视频相关推荐
- Android录制视频,仿微信小视频录制(一)
Android录制视频,第一部分自定义控件 简述 公司有一个录制视频并上传的功能,录制视频具体使用类如下:硬件控制使用Camera,视频录制的格式音频等具体配置与录制使用MediaRecorder,预 ...
- android 摄像头进程占用,Android 录制视频 Camera占用的解决方法
Android 录制视频 Camera占用的解决方法 最近需要修改项目中的视频录制功能,原来没怎么理会,可以正常录制. 但是不录制直接返回Camera就会出现占用情况,而且连系统相机都无法正常使用了. ...
- Android录制视频-nv21转nv12姿势(libyuv使用)
Android录制视频-nv21转nv12姿势(libyuv使用) 前言 为什么需要转化? libyuv简介 实际使用 1.集成 2.修改代码 3.添加方法 4.项目中使用 总结 前言 近期接触项目当 ...
- android 视频录制小例子,android 录制视频实例 VideoRecordDemo
[实例简介] [实例截图] [核心代码] package com.example.videorecorddemo; import java.io.IOException; import java.ut ...
- android录制视频实现
Android视频录制使用MediaRecorder来录制,SurfaceView来预览视频 与录制音频类似,录制视频的步骤为: 1. 构造MediaRecorder对象 2. 设置视频的声音和视 ...
- Android开发之android录制视频功能
录制视频主要使用到MediaRecorder这个类.代码也不多很简单我就直接粘贴下 if (btRecord.text.toString() == "录制") {camera = ...
- android 录制视频模糊,安卓手机录制视频不清晰是什么原因?_科技数码通
你好,很高兴回答你的问题!安卓手机录制视频不清晰的问题是多方面的,可以从以下角度进行检查: 一.手机的像素配置低 其实以现在主流的手机来讲,录制视频并不应该会不清晰,如果存在不清晰的情况,大概就是手机 ...
- android录制视频有裂痕马赛克的问题处理办法
最近做一个项目, 录制视频添加水印功能, 但是完成之后发现高速晃动手机录制的画面有断裂, 有马赛克的问题. 处理过程是从摄像头回调数据放入队列中, 上层将数据的yuv转换角度, 添加水印后放入编码器中 ...
- android 录制视频代码,Android录制视频
1.系统相机 录制视频,最简单的当然是调用系统的相机,可以使用如下参数,配置系统相机: MediaStore.EXTRA_OUTPUT:设置媒体文件的保存路径. MediaStore.EXTRA_VI ...
最新文章
- php.zip安装教程,php如何安装zip模块?(方法介绍)
- java渐变色字体生成器_java阴影文字效果怎么做?渐变的怎么做?
- linux tar命令详解,Linux tar命令详解
- 你一定不知道的 Linux 使用技巧
- Qt QtConcurrent之 Run 函数用法
- html点击波,Material Design风格按钮点击波动画效果
- 聊聊信号的回勾和过冲(转)
- Linux 系统中的定时任务及延时任务
- pandas操作sql数据库
- could not find or load the Qt platform plugin xcb
- win7虚拟机_UTM 虚拟机不越狱运行 win7,百分百可以
- 下载 .m3u8视频文件
- -3dB带宽定义和理解
- DINO Emerging Properties in Self-Supervised Vision Transformers 论文阅读
- 颜色空间:RGB,CMY,HSV,HSL,Lab详解(转载)
- 万万没想到,最简单的视频编辑软件竟然是知乎?!
- kettle java交互_java程序中给Kettle传参数,其实很简单
- 应用层读写i2c从设备寄存器
- C语言系统程序总体框图,c语言学生成绩管理系统(含源代码)精要.doc
- 数据说的舆情分析的算法模型的建立