文档章节

Android 录音实现

 的书法上的
发布于 2014/06/11 09:36
字数 483
阅读 254
收藏 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
Android音视频开发之使用AudioRecord采集音频

AudioRecord 是 Android 系统提供的用于实现录音功能的 API,官方文档是这么解释的: AndioRecord类的主要功能是让各种Java应用能够管理音频资源,以便它们通过此类能够录制声音相关的硬件所...

落英坠露
10/30
0
0
安卓手机上 K 歌,声音延迟怎么解决?

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

编辑部的故事
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

2135亿背后,你所不知道的那些阿里瞬间

摘要: 01 10日下午五点。 上海梅赛德斯奔驰文化中心,天猫双11前夜的“猫晚”就在离我100米的地方。 台上正彩排,鲜衣怒马,烈焰繁花。但走进导播车,白天和黑夜好像没有区别,但你知道吗,...

阿里云官方博客
36分钟前
1
0
叶曼音频

道德经 道德经01a 道德经01b

亚林瓜子
44分钟前
1
0
Go 使用channel控制并发

前言 channel一般用于协程之间的通信,channel也可以用于并发控制。比如主协程启动N个子协程,主协程等待所有子协程退出后再继续后续流程,这种场景下channel也可轻易实现。 场景示例 总结 ...

恋恋美食
今天
3
0
斐波那契堆的理解,节点mark属性和势函数

斐波那契堆 看了好多博客,都是照搬算法导论的内容,没有自己的理解,比如为什么有mark属性,势函数的作用,以及为什么叫斐波那契堆,下面说说鄙人的理解。 势函数 势函数是根节点个数加上2...

杨喆
今天
7
0
NIO源码详解

阻塞io和无阻塞io: 阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 ...

沉稳2018
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部