在上一篇博客,Android-MediaRecorder录制音频,中讲解了使用Android API MediaRecorder 刻录音频,这篇博客主要是介绍 使用MediaRecorder刻录(视频)录像机

这篇博客是讲解刻录视频,无论是刻录音频还是刻录视频都是使用 MediaRecorder媒体刻录器来刻录

刻录音频 与 刻录视频 对比:

            刻录音频:MediaRecorder

            刻录播放:MediaRecorder + SurfaceView

MediaRecorder是Android设计的媒体刻录器,不仅仅可以刻录音频文件,还可以刻录视频文件

  刻录:Audio  相关

  刻录:Video  相关

MediaRecorder 和 MediaPlayer 的区别:

  MediaRecorder:媒体刻录器,可以刻录(音频 / 视频)

  MediaPlayer:    媒体播放器,可以播放(音频 / 视频)

以下图,是Android官方提供:MediaRecorder时序图:

只要会看这个图:就能实现音频/视频刻录,开始刻录,停止刻录,等等

看图规律:

    1.蓝色椭圆形是状态;

    2.单箭头是方法调用;

    3.双箭头是监听回调;

      


AndroidManifest.xml配置权限:

  1.   <!-- 刻录是很危险的行为,所以需要权限RECORD_AUDIO,无论是刻录音频还是视频都需要RECORD_AUDIO -->
  2. <uses-permission android:name="android.permission.RECORD_AUDIO" />
  3.  
  4. <!-- 保存音频文件到sdcard外部存储的权限 -->
  5. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

AndroidManifest.xml配置Activity横屏/全屏:

  1.     <!--
  2. MediaRecorder录制视频
  3. 设置横屏显示: android:screenOrientation="landscape"
  4. 设置无标题+全屏: android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"
  5. -->
  6. <activity android:name=".MyMediaRecorderVideoActivity"
  7. android:screenOrientation="landscape"
  8. android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
  9.  
  10. <intent-filter>
  11. <action android:name="android.intent.action.MAIN" />
  12.  
  13. <category android:name="android.intent.category.LAUNCHER" />
  14. </intent-filter>
  15.  
  16. </activity>

activity_media_recorder_video.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout
  3. xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent">
  6.  
  7. <SurfaceView
  8. android:id="@+id/surface_view"
  9. android:layout_width="match_parent"
  10. android:layout_height="match_parent" />
  11.  
  12. <Button
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:text="刻录视频"
  16. android:layout_alignParentBottom="true"
  17. android:onClick="recorderVideo"
  18. />
  19.  
  20. </RelativeLayout>

MyMediaRecorderVideoActivity.java

  1. package liudeli.my_media1;
  2.  
  3. import android.app.Activity;
  4. import android.media.MediaRecorder;
  5. import android.os.Bundle;
  6. import android.os.Environment;
  7. import android.view.SurfaceView;
  8. import android.view.View;
  9. import android.widget.Button;
  10.  
  11. import java.io.File;
  12. import java.io.IOException;
  13.  
  14. public class MyMediaRecorderVideoActivity extends Activity {
  15.  
  16. // 定义媒体刻录器 刻录视频+音频
  17. private MediaRecorder recorder;
  18.  
  19. // 定义SurfaceView
  20. private SurfaceView surfaceView;
  21.  
  22. @Override
  23. protected void onCreate(Bundle savedInstanceState) {
  24. super.onCreate(savedInstanceState);
  25.  
  26. setContentView(R.layout.activity_media_recorder_video);
  27.  
  28. surfaceView = findViewById(R.id.surface_view);
  29.  
  30. // 创建媒体刻录器
  31. recorder = new MediaRecorder();
  32.  
  33. // 音频录制的来源:麦克风
  34. Android-MediaRecorder录像机(视频)的更多相关文章

      1. Android使用的开发MediaRecorder录制视频
      1. MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用Medi ...

      1. Android音视频之MediaRecorder音视频录制
      1. 前言: 公司产品有很多地方都需要上传音频视频,今天抽空总结一下音频视频的录制.学习的主角是MediaRecorder类. MediaRecorder类介绍: MediaRecorder类是Androi ...

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

      1. Android中直播视频技术探究之---桌面屏幕视频数据源采集功能分析
      1. 一.前言 之前介绍了Android直播视频中一种视频源数据采集:摄像头Camera视频数据采集分析 中介绍了利用Camera的回调机制,获取摄像头的每一帧数据,然后进行二次处理进行推流.现在我们在介绍 ...

      1. Android中直播视频技术探究之---基础知识大纲介绍
      1. 一.前言 最近各种视频直播app到处都是,各种霸屏,当然我们也是需要体验的,关于视频直播的软件这里就不介绍了,在不是技术的人来看,直播是一种潮流,是一种娱乐方式,但是作为一个高技术的,我们除了看看,更 ...

      1. 使用MediaRecorder录制视频短片
      1. MediaRecorder除了可用于录制音频之外,还可用于录制视频,使用MediaRecorder录制视频与录制音频的步骤基本相同.只是录制视频时不仅需要采集声音,还需要采集图像.为了让MediaRe ...

      1. Android开发笔记——视频录制播放常见问题
      1. 本文分享自己在视频录制播放过程中遇到的一些问题,主要包括: 视频录制流程 视频预览及SurfaceHolder 视频清晰度及文件大小 视频文件旋转 一.视频录制流程 以微信为例,其录制触发为按下(住) ...

      1. Android MediaRecorder解析
      1. 源码路径:frameworks/base/media/java/android/media/MediaRecorder.javaframeworks/base/media/jni/android_me ...

      1. Android MediaRecorder自定义分辨率
      1. Android MediaRecorder自定义分辨率 工作这么久了,确实积累了不少东西,但都是以文档的形式存在U盘里的,为什么不写博客呢?因为懒啊!!!总感觉博客太难写了(大概是上学时候写作文恐惧症 ...

    1.  
    2. 随机推荐

        1. python3_爬虫_爬百度音乐
        1. 工具及环境 1.操作系统:windows 64位系统 2.软件工具:谷歌浏览器.pycharm集成开发工具 3.第三方库:request 注:如果第三方库搭建有困难,请看博客:https://www. ...

        1. memcached配置 (初级)以及测试
        1. 一.memcached安装 memcached依赖 $ sudo apt-get install libevent-dev   安装memcached服务 $ sudo apt-get install ...

        1. Pthreads 《并行程序设计导论》的补充代码
        1. 关于单链表的访问,插入结点和删除结点操作,并且将其推广到多线程中去. 代码,通用的随机数生成 // my_rand.h #ifndef _MY_RAND_H_ #define _MY_RAND ...

        1. 基于 Lucene 的桌面文件搜索
        1. 开源2010年,自己在学习 Lucene 时开发的一款桌面文件搜索工具,这么多年过去了,代码一直静静存放在自己的硬盘上,与其让其沉睡,不如分享出来. 这款工具带有明显的模仿 Everything 的痕 ...

        1. BTM事务配置
        1. 请参考原贴:http://thinkdifferent.iteye.com/blog/1450433 Tomcat6上配置BTM 博客分类: practice tomcatjava )去http:// ...

        1. 26.OGNLValueStack(VS)-N语法top语法
        1. 转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html N语法[0]:<s:property value="[0]& ...

        1. 最简单的WebService
        1. 写在前面的话: 当两个人碰面后,产生了好感,如果需要得到双方的信息,那么双方的交流是必不可少的!应用程序也如此, 各个应用程序之间的交流就需要WebService来作为相互交流的桥梁! 项目目的: ...

        1. IOS CGAffineTransform 用于视图平移,放缩,旋转
        1. 转载于:http://blog.csdn.net/lc_obj/article/details/17454825 CGAffineTransform 今天碰到了一个旋转放缩图片的一个demo,在看的过 ...

        1. C】常用的字符串函数
        1. 1. strcpy 函数名:strcpy 用法:char *strcpy(char *destin, char *cource) 功能:将一个字符串从一个拷贝到另外一个 程序示例: #include ...

        1. java中将数字的字符串表示转化为数字
        1. int a = new Integer("1234").intValue() int b = Integer.parseInt("1234") System ...