博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 录音实现
阅读量:6446 次
发布时间:2019-06-23

本文共 1892 字,大约阅读时间需要 6 分钟。

hot3.png

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

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

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

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

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

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

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

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

 

[java]  
<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]  
<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文件。

转载于:https://my.oschina.net/u/1463230/blog/277921

你可能感兴趣的文章
Redis集群中删除/修改节点(master、slave)(实验)
查看>>
memcache数据库和redis数据库的区别(理论)
查看>>
我的友情链接
查看>>
HTML 应用 多列浮动等高处理
查看>>
MyBatis+Spring结合
查看>>
shell实例-判断apache是否正常启动
查看>>
Android studio之签名配置
查看>>
聊聊EIGRP的自动汇总与手工汇总
查看>>
SharedPreferences存储复杂对象解决方案
查看>>
Office 365之SkyDrive Pro
查看>>
脑残式网络编程入门(二):我们在读写Socket时,究竟在读写什么?
查看>>
无缝滚动实现原理分析【公告栏】
查看>>
Java Web 高性能开发
查看>>
redis-cli 命令总结
查看>>
CentOS 4.4双网卡绑定,实现负载均衡
查看>>
GitHub页面使用方法
查看>>
Python爬虫综述(笔记)
查看>>
Scala之柯里化和隐式转换
查看>>
wmic命令
查看>>
Merge and BottomUpSort
查看>>