文档章节

Android 录音实现

 的书法上的
发布于 2014/06/11 09:36
字数 483
阅读 252
收藏 9

 在模拟器中无法利用电脑的声卡录音,因此这个功能必须在真机上测试。录音功能需要使用android.media.MediaRecorder来完成。使用MediaRecorder录音需要通过如下6个步骤完成:

(1)设置音频来源(一般为麦克风)。

(2)设置音频输出格式。

(3)设置音频编码方式。

(4)设置输出音频的文件名。

(5)调用MediaRecorder类的perpare方法。

(6)调用MediaRecorder类的start方法开始录音。

实现录音功能的完整代码如下:

 

[java]   view plain copy
<EMBED id=ZeroClipboardMovie_1 name=ZeroClipboardMovie_1 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer height=18 width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=1&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
  1. MediaRecorder mediaRecorder = new MediaRecorder();  
  2. // 第1步:设置音频来源(MIC表示麦克风)  
  3. mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);  
  4. //第2步:设置音频输出格式(默认的输出格式)  
  5. mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);  
  6. //第3步:设置音频编码方式(默认的编码方式)  
  7. mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);  
  8. //创建一个临时的音频输出文件  
  9. audioFile = File.createTempFile("record_"".amr");  
  10. //第4步:指定音频输出文件  
  11. mediaRecorder.setOutputFile(audioFile.getAbsolutePath());  
  12. //第5步:调用prepare方法  
  13. mediaRecorder.prepare();  
  14. //第6步:调用start方法开始录音  
  15. mediaRecorder.start();  


       上面的代码指定了一个临时的音频输出文件,这就意味着每次将生成不同的音频文件。文件名的格式是record_N.amr,其中N是整数。在录完音后,在SD卡的根目录会看到很多这样的文件(由录音的次数多少决定amr文件的多少)。

       停止录音可以使用MediaRecorder类的stop方法,代码如下:

[java]   view plain copy
<EMBED id=ZeroClipboardMovie_2 name=ZeroClipboardMovie_2 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer height=18 width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=2&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">
  1. mediaRecorder.stop();  

 

       在生成amr文件后,可以使用MediaRecorder来播放amr文件。

© 著作权归作者所有

共有 人打赏支持
粉丝 5
博文 72
码字总数 58940
作品 0
东城
android使用MediaRecorder实现录音

有四个按钮,分别是“录音”、“停止”、“播放”、“删除”。如图1所示。 图1:录音机的界面 MediaRecorder的生命周期 MediaRecorder可以用来录制音频或视频。它具有以下几个状态: Initial:...

苍海一粟
2011/11/15
0
2
Android实现录音、播音、录制视频功能

智能手机操作系统IOS与Android平分天下(PS:WP与其他的直接无视了),而Android的免费招来了一大堆厂商分分向Android示好,故Android可能会有“较好”的前景。 Android录音辅助类 需要添加的...

vga
2017/01/09
0
3
android手机的Mic对声音的感知

android手机的Mic对声音的感知 以下是转载的文章,前段时间我也在做mic录音方面的东东,等整理出来再总结一下。。 这段时间做了个有关android手机利用mic捕获外界环境音量的小东东,多方查询...

IMGTN
2013/11/22
0
0
安卓手机上 K 歌,声音延迟怎么解决?

这篇文章可以为你提供一个解决录音和播放同步问题的思路,而且解决了声音从手机传输到耳机上有延时的问题。 初识音频 在开始之前,我先简单介绍一下音频相关的基础知识,方便下文理解。 我们...

编辑部的故事
07/16
0
0
语音识别CMUSphinx(3)特征信息的提取

为了能在安卓Demo中提取出有用的信息,先来参考源码(因为Android Demo是用JNI封装了一下实现的) .c源码中所需要的声学分数提取 这里我想要的就是 等参数,查看 源代码,主要的逻辑如下 来到...

Seeker_zz
08/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
5
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
35
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部