AudioRecord 101教育ppt初始化失败败求教

多媒体(7)
分类:&&291人阅读&&&
一、【实例教程】:
1、 Android 情景模式设置
2、Android电话相关的操作 - 打电话,接电话,挂电话
3、音量控制
4、_如何获取和设置android系统铃声和音量大小
5、Android多媒体分析(三)通过MediaStore获取Audio信息
6、Android 各种音量的获取和设置
7、Android API AudioManager(一)
8、Android API AudioManager(二)
9、Android API AudioManager(三)
10、Android游戏框架 Libgdx 使用入门(一)
11、Android OpenMax的接口与实现(一)
12、Android OpenMax的接口与实现(二)
13、Android 初学JNI知识(二)
14、Android2.1 架构解析声音(五)
15、AudioTrack与AudioFlinger交换音频数据(一)
16、AudioTrack与AudioFlinger交换音频数据(二)
17、Android 多媒体框架中mediaplay与opencore的衔接调用过程(一)
18、Android 多媒体框架中mediaplay与opencore的衔接调用过程(二)
19、Android 流媒体播放器
20、AVI破解及Android2.3实现
21、关于实现类似于圆形ProgressBar的播放进度条
22、Android 游戏开发 异步 音乐播放
23、OpenCORE原理和核心代码破解--1 &例子AVI文件的识别和解析部分&
24、Android 如何让content provider构建媒体数据库(一)
25、Android 如何让content provider构建媒体数据库(二)
26、Android 细说游戏引擎(一)
27、Android 细说游戏引擎(二)
28、Android 细说游戏引擎(三)
29、Android 细说游戏引擎(四)
30、Android 细说游戏引擎(五)
31、Android 细说游戏引擎(六)
32、Android 细说游戏引擎(七)
33、Android 细说游戏引擎(八)
34、Android 细说游戏引擎(九)
35、Android 细说游戏引擎(十)
36、Android中FMRadio实现(一)
37、Android中FMRadio实现(二)
38、Android 设置铃声+震动
39、Android 通过流播放声音(一)
40、Android 通过流播放声音(二)
41、Android 通过流播放声音(三)
42、Android2.1 架构解析声音(一)
43、Android2.1 架构解析声音(二)
44、Android2.1 架构解析声音(三)
45、Android2.1 架构解析声音(四)
46、Android2.1 架构解析声音(五)
47、Andorid c++与java方法互调(三)
48、[Android分享] Android MediaScanner深入研究系列帖子汇总
49、Android 深入研究JNI汇总
50、Android中怎样嵌入C语言汇总
51、Android游戏引擎主要类和方法介绍教程汇总
52、Android 带缓冲的播放器教程汇总
53、Android MK文件写法(一)
54、Android MK文件写法(二)
55、Android MK文件写法(三)
56、Android AudioPolicyService和AudioPolicyManager
57、Android 里的AudioFormat
58、Android 谈谈M3U文件(一)
59、Android 谈谈M3U文件(二)
60、Android AudioFlinger(一)
61、Android AudioFlinger(二)
62、Android Audio框架
63、Android JNI代码
64、Android AudioFlinger代码
65、Android Audio抽象层的接口
66、Android Audio抽象层实现
67、Android soundpool总结
68、之旅(十六)异步音乐播放
69、Android多媒体模块代码分析(一)
二、【网友实践】:
1、SurfaceView 播放流媒体
2、TinyPlayer之Audio与Video
三、【网友在实践中遇到的问题】(已经解决):
1、关于android中mediaplayer调用资源出现问题,求解答
2、编译CM7源码出现关于‘libaudio.so’的错误,求解
3、求问 获得音量大小并保存为amr格式文件
4、关于SoundPool的疑问
5、如何在BroadcastReceiver里获得一个AudioManager对象
6、Android移植遇到问题,求大牛帮忙分析一下logcat~
7、【求助】Surfaceview、mediaplayer问题
8、使用AudioTrack播放音频 getPlaybackHeadPosition()可以获取播放位置
9、如何使用好audioRecord呢
10、MedioPlayer播放问题
11、初始化AudioRecord出错!
12、新手求教AudioRecorder构造函数的参数问题,谢谢
四、【网友在实践中遇到的问题】(未解决):
1、求助:jni调用audio接口出错
2、BT Headset通話錄音的問題?
3、obtainBuffer() track 0xXXXX disabled, restarting问题的解决方法
4、AudioRecord初始化失败的问题请教。
5、AudioTrack播放在线音乐,网络很卡的情况下如何处理??
6、求撞到大师!创建audiorecord对象的参数配置啊!
7、大量字节存取
8、如何获得歌曲专辑图片?
9、AudioRecord 类录音怎么获取当前说话声音的振幅
10、android4.0 获取媒体音量值为0
11、android喇叭音量被抑制的问题
12、SoundPool能捆绑OnTouchClick吗?具体怎么操作?
13、关于W/AudioTrack( 636): obtainBuffer timed out的问题
五、【最新相关的资源下载】:
1、给大家分享下
2、MediaRecorder类详解(附件是22页文档从最上层到最下层)
3、Android深入浅出之Audio第三部分Audio Policy[1]
4、Android深入浅出之Audio第一部分 AudioTrack
5、Android深入浅出之Audio 第二部分 AudioFlinger分析
6、Android的Audio系统之一
7、【Android系统原理与开发要点详解】/底层 应用 框架 培训资料
8、android系统ppt-个模块介绍
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11128次
排名:千里之外
原创:14篇
转载:12篇
(1)(7)(5)(13)这段时间做了个有关android手机利用mic捕获外界环境音量的小东东,多方查询,各种研究,现在把这些东西跟童鞋们分享一下,如有不足或者差错,还望大牛们多给意见。
&&&&&&& android提供可以实现录音功能的有AudioRecord和MediaRecorder,其中AudioRecord是读取Mic的音频流,可以边录音边分析流的数据;而MediaRecorder则能够直接把Mic的数据存到文件,并且能够进行编码(如AMR,MP3等)。
&&&&&&& 首先,要将你的应用加入权限(无论你是使用AudioRecord还是MediaRecorder):
&&&&&&&&&&&&&&&& &uses-permission android:name="android.permission.RECORD_AUDIO" /&
&&&&&&& 然后,分开介绍两者的用法。
&&&&&&& 《!--AudioRecord--》
&&&&&&& 1、新建录音采样类,实现接口:
&&&&&&&&&&&& public class MicSensor implements AudioRecord.OnRecordPositionUpdateListener
&&&&&&&&2、关于AudioRecord的初始化:
&&&&&&&&&&&& public AudioRecord (int audioSource, int sampleRateInHz, int channelConfig, int audioFormat, int bufferSizeInBytes)
&&&&&&&&&&&& audioSource:&&&&&&&&&&&&&&录音源(例如:MediaRecorder.AudioSource.MIC&&& 指定Mic为录音源)
&&&&&&&&&&&&&sampleRateInHz:&&&&&&&&默认的采样频率,单位为Hz。(常用的如44100Hz、22050Hz、16000Hz、11025Hz、8000Hz,有人说44100Hz是目前保证在所有厂商的android手机上都能使用的采样频率,但是个人在三星i9000上使用却不然,经测试8000Hz似乎更为靠谱)&&
&&&&&&&&&&& channelConfig:&&&&&&&&&& 描述音频通道设置。(在此我使用了AudioFormat.CHANNEL_CONFIGURATION_MONO)
&&&&&&&&&&& audioFormat:&&&&&&&&&&&&& 音频数据支持格式。(这个好像跟声道有关,16bit的脉码调制录音应该是所谓的双声道,而8bit脉码调制录音是单声道。AudioFormat.ENCODING_PCM_16BIT、AudioFormat.ENCODING_PCM_8BIT)
&&&&&&&&&& bufferSizeInBytes:&&&&&&& 在录制过程中,音频数据写入缓冲区的总数(字节)。 从缓冲区读取的新音频数据总会小于此值。 getMinBufferSize(int, int, int)返回AudioRecord 实例创建成功后的最小缓冲区。 设置的值比getMinBufferSize()还小则会导致初始化失败。
&&&&&&&3、初始化成功后则可启动录音&&& audioRecord.startRecording()
&&&&&& 4、编写线程类将录音数据读入缓冲区,进行分析
&&&&&&&&&&&& short[] buffer = new short[bufferSize];&&&&&&&&&&&&&&//short类型对应16bit音频数据格式,byte类型对应于8bit&&&&&&&&&&&&&audioRecord.read(buffer, 0, bufferSize);&&&&&&&&&&& //返回值是个int类型的数据长度值
&&&&& 5、在此需要对buffer中的数据进行一些说明:
&&&&&&&&&& 这样读取的数据是在时域下的数据,直接用于计算没有任何实际意义。需要将时域下的数据转化为频域下的数据,才能诉诸于计算。
&&&&&&&&&& 频域(frequency domain)是指在对函数或信号进行分析时,分析其和频率有关部份,而不是和时间有关的部份。
&&&&&&&&&& 函数或信号可以透过一对数学的运算子在时域及频域之间转换。例如傅里叶变换可以将一个时域信号转换成在不同频率下对应的振幅及相位,其频谱就是时域信号在频域下的表现,而反傅里叶变换可以将频谱再转换回时域的信号。
&&&&&&&&&& 信号在时域下的图形可以显示信号如何随着时间变化,而信号在频域下的图形(一般称为频谱)可以显示信号分布在哪些频率及其比例。频域的表示法除了有各个频率下的大小外,也会有各个频率的相位,利用大小及相位的资讯可以将各频率的弦波给予不同的大小及相位,相加以后可以还原成原始的信号。
&&&&&&&&&& 经傅立叶变化后得到的复数数组是个二维数组,实部和虚部的平方和取对数后乘以10就大致等于我们通常表示音量的分贝了。
&&&&&&&《!--MediaRecorder--》
&&&&&&&& 相对于AudioRecord,MediaRecorder提供了更为简单的api。
mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mediaRecorder.setOutputFile("/dev/null");
&&&&&&&&&设置好mediaRecorder的各个属性,然后通过线程调用方法&&mediaRecorder.getMaxAmplitude();
&&&&&&&&&&& 得到的是瞬时的最大振幅,直接取对数然后乘以10就可以表征分贝了。
&&&&&&&&&&& 最后需要说明一下,android手机厂商定制的硬件不尽相同,所以mic获取的值也只能&表征&,而不能拿过来当真正的依据。它们虽是智能手机,但也还是手机,机器人不是人!呵呵。。。
&&&&&&&&&&& 对了,每个手机mic在声信号和电信号进行转换时都有做过电容保护,为了其不因外界环境的过于嘈杂而易受到损坏。所以超声波和次声波,我们人不容易接受的声音,手机也不会入耳的。
阅读(...) 评论() &君,已阅读到文档的结尾了呢~~
android中文api(122) —— audiorecord
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
android中文api(122) —— audiorecord
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口

我要回帖

更多关于 audiorecord 暂停 的文章

 

随机推荐