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 录制视频相关推荐

  1. Android录制视频,仿微信小视频录制(一)

    Android录制视频,第一部分自定义控件 简述 公司有一个录制视频并上传的功能,录制视频具体使用类如下:硬件控制使用Camera,视频录制的格式音频等具体配置与录制使用MediaRecorder,预 ...

  2. android 摄像头进程占用,Android 录制视频 Camera占用的解决方法

    Android 录制视频 Camera占用的解决方法 最近需要修改项目中的视频录制功能,原来没怎么理会,可以正常录制. 但是不录制直接返回Camera就会出现占用情况,而且连系统相机都无法正常使用了. ...

  3. Android录制视频-nv21转nv12姿势(libyuv使用)

    Android录制视频-nv21转nv12姿势(libyuv使用) 前言 为什么需要转化? libyuv简介 实际使用 1.集成 2.修改代码 3.添加方法 4.项目中使用 总结 前言 近期接触项目当 ...

  4. android 视频录制小例子,android 录制视频实例 VideoRecordDemo

    [实例简介] [实例截图] [核心代码] package com.example.videorecorddemo; import java.io.IOException; import java.ut ...

  5. android录制视频实现

    Android视频录制使用MediaRecorder来录制,SurfaceView来预览视频 与录制音频类似,录制视频的步骤为: 1.  构造MediaRecorder对象 2.  设置视频的声音和视 ...

  6. Android开发之android录制视频功能

    录制视频主要使用到MediaRecorder这个类.代码也不多很简单我就直接粘贴下 if (btRecord.text.toString() == "录制") {camera = ...

  7. android 录制视频模糊,安卓手机录制视频不清晰是什么原因?_科技数码通

    你好,很高兴回答你的问题!安卓手机录制视频不清晰的问题是多方面的,可以从以下角度进行检查: 一.手机的像素配置低 其实以现在主流的手机来讲,录制视频并不应该会不清晰,如果存在不清晰的情况,大概就是手机 ...

  8. android录制视频有裂痕马赛克的问题处理办法

    最近做一个项目, 录制视频添加水印功能, 但是完成之后发现高速晃动手机录制的画面有断裂, 有马赛克的问题. 处理过程是从摄像头回调数据放入队列中, 上层将数据的yuv转换角度, 添加水印后放入编码器中 ...

  9. android 录制视频代码,Android录制视频

    1.系统相机 录制视频,最简单的当然是调用系统的相机,可以使用如下参数,配置系统相机: MediaStore.EXTRA_OUTPUT:设置媒体文件的保存路径. MediaStore.EXTRA_VI ...

最新文章

  1. php.zip安装教程,php如何安装zip模块?(方法介绍)
  2. java渐变色字体生成器_java阴影文字效果怎么做?渐变的怎么做?
  3. linux tar命令详解,Linux tar命令详解
  4. 你一定不知道的 Linux 使用技巧
  5. Qt QtConcurrent之 Run 函数用法
  6. html点击波,Material Design风格按钮点击波动画效果
  7. 聊聊信号的回勾和过冲(转)
  8. Linux 系统中的定时任务及延时任务
  9. pandas操作sql数据库
  10. could not find or load the Qt platform plugin xcb
  11. win7虚拟机_UTM 虚拟机不越狱运行 win7,百分百可以
  12. 下载 .m3u8视频文件
  13. -3dB带宽定义和理解
  14. DINO Emerging Properties in Self-Supervised Vision Transformers 论文阅读
  15. 颜色空间:RGB,CMY,HSV,HSL,Lab详解(转载)
  16. 万万没想到,最简单的视频编辑软件竟然是知乎?!
  17. kettle java交互_java程序中给Kettle传参数,其实很简单
  18. 应用层读写i2c从设备寄存器
  19. C语言系统程序总体框图,c语言学生成绩管理系统(含源代码)精要.doc
  20. 数据说的舆情分析的算法模型的建立

热门文章

  1. leetcode 3. Longest Substring Without Repeating Characters
  2. 【vue】vue +element 搭建项目,Qs用途
  3. iOS: 零误差或极小误差的定时执行或延迟执行?
  4. L1-039. 古风排版
  5. SQL多表连接查询(详细实例)
  6. 让系统命令man汉化
  7. WDS部署服务之四镜像捕获(1)
  8. 【自然框架】稳定版的Demo——看点二:权限,权限过滤与验证。
  9. 如家快捷酒店和星级酒店的区别
  10. 构建一个业务连续的网络