public class MainActivity extends Activity {

     private MediaRecorder videoRecorder=null;
private Button recorder=null;
private Button stop=null;
private SurfaceView surface=null;
@SuppressWarnings("deprecation")
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);//设置屏幕横向全屏显示
setContentView(R.layout.main);
videoRecorder=new MediaRecorder();
surface=(SurfaceView) this.findViewById(R.id.surface);
recorder=(Button) this.findViewById(R.id.recorder);
stop=(Button) this.findViewById(R.id.stop);
surface.getHolder().setKeepScreenOn(true);
surface.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surface.getHolder().setFixedSize(320, 240); }
public void RecordVideo(View v)
{
switch (v.getId()) {
case R.id.recorder: stop.setEnabled(true);
recorder.setEnabled(false);
try {
videoRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);//设置音频的来源
videoRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //设置视频的来源
videoRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//设置视频的输出格式3gp
videoRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);//设音频的解码方式
videoRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);//设视频的解码方式
videoRecorder.setVideoFrameRate(5);//设置每秒捕获画面的个数
videoRecorder.setVideoSize(480, 320);//设置视频的大小
File f=new File(Environment.getExternalStorageDirectory().getAbsolutePath(),System.currentTimeMillis()+".3gp");
videoRecorder.setOutputFile(f.getAbsolutePath());//设置保存的路径
videoRecorder.setPreviewDisplay(surface.getHolder().getSurface());//吧捕获的画面显示到surfaceView控件中
videoRecorder.prepare();
videoRecorder.start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} break;
case R.id.stop:
stop.setEnabled(false);
recorder.setEnabled(true);
if(videoRecorder!=null)
{
videoRecorder.stop();
videoRecorder.release();
videoRecorder=null;
}
break;
}
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
this.findViewById(R.id.btnLayout).setVisibility(View.VISIBLE);
}
return super.onTouchEvent(event);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} } 注意:activity设置好之后必须在Mainfest.xml文件中配置权限
80 <uses-permission android:name="android.permission.CAMERA"/>
81 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
82 <uses-permission android:name="android.permission.RECORD_AUDIO"/>
83 <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

Android视频录制的更多相关文章

  1. android视频录制、另一部手机实时观看方案

    最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...

  2. Android视频录制从不入门到入门系列教程(一)————简介

    一.WHY Android SDK提供了MediaRecorder帮助开发者进行视频的录制,不过这个类很鸡肋,实际项目中应该很少用到它,最大的原因我觉得莫过于其输出的视频分辨率太有限了,满足不了项目的 ...

  3. Android视频录制从不入门到入门系列教程(三)————视频方向

    运行Android视频录制从不入门到入门系列教程(二)————显示视频图像中的Demo后,我们应该能发现视频的方向是错误的. 由于Android中,Camera给我们的视频图片的原始方向是下图这个样子 ...

  4. 利用FFmpeg玩转Android视频录制与压缩(二)<转>

    转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女 ...

  5. android 视频录制 混淆打包 之native层 异常的解决

    原文地址:http://www.cnblogs.com/linguanh/    (滑至文章末,直接看解决方法) 问题起因: 前5天,因为项目里面有个类似 仿微信 视频录制的功能, 先是上网找了个 开 ...

  6. Android视频录制从不入门到入门系列教程(四)————Camera Parameter

    Camera提供了一个叫做setParameters的方法帮助开发者设置相机的相关参数. 通过Camera的getParameters方法可以获取到当前为相机设置的相关参数. 下面简单介绍下,视频录制 ...

  7. Android视频录制命令screenrecord

    不管是教学,还是为了演示,如果能将Android手机(或平板)的屏幕录制成视频文件,那是一件非常酷的事(iOS8已经提供了这一功能,能通过OS X直接在Mac上录制iPad.iPhone的屏幕,win ...

  8. Android拓展系列(9)--Android视频录制screenrecord命令

    在Android4.4 Kitkat上集成了一个比较好用的视频录制功能.参考:http://forums.androidcentral.com/android-4-4-kitkat/329674-ho ...

  9. 我的Android进阶之旅------>Android视频录制小例子

    ============================首先看看官网上关于视频捕捉的介绍================================ Capturing videos Video ...

随机推荐

  1. Project Euler:Problem 47 Distinct primes factors

    The first two consecutive numbers to have two distinct prime factors are: 14 = 2 × 7 15 = 3 × 5 The ...

  2. javascript加载图片获取图片尺寸信息方法

    如果你遇到不方便从服务器取图片尺寸信息的话,用下面代码就很方便了. // 更新: // 05.27: 1.保证回调执行顺序:error > ready > load:2.回调函数this指 ...

  3. IntelliJ IDEA 中module的dependencies是其它module时的注意事项

    Dependencies on other modules If a module (module A) depends on another module (module B), IntelliJ ...

  4. Android(java)学习笔记254:ContentProvider使用之内容观察者(观察发出去的短信)

    1.新建一个案例如下: 2. 不需要添加权限,同时这里布局文件不做修改,来到MainActivity,如下: package com.itheima.sendsmslistener; import a ...

  5. LSI SAS 2208 配置操作

    配置LSISAS2208 介绍LSISAS2208扣卡的配置方法. 2.1 登录CU界面 介绍登录LSISAS2208的CU配置界面的方法,以及CU界面的主要功能. 2.2 创建RAID 介绍创建RA ...

  6. 《CSS网站布局实录》学习笔记(四)

    第四章 CSS网站元素设计 4.1 网站导航 网站导航是网站中最重要的元素.从形式上看,网站导航主要分横向导航.纵向导航.下拉及多级菜单导航灯3种常见形式. 横向导航:作为门户网站的设计而言,主导航一 ...

  7. 学习日记-----ORM

    ORM ORM(Object Relation Mapping)对象关系映射 实质:将数据库中 的业务数据用对象的形式表现出来,使用ORM在业务逻辑层和数据访问层之间充当桥梁 核心原则: 简单性 传达 ...

  8. JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法

    转载至http://www.blogjava.net/itspy/archive/2007/12/20/169072.html Oracle 问题描述:今天使用jdbc连接oracle 10.2.0. ...

  9. oralce中exists not exists in not in对于NULL的处理

    1.   先讨论 in 与 not in中存在NULL的情况, sql语句如下: 1 select 1 result1 from dual where 1 not in (2, 3); 2 3 4 s ...

  10. 静默安装ORACLE【weber出品必属精品】

    安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...