移动端(iOS,安卓)即时通讯长链接传输格式speex音频文件录制及播放原理

录制原理:
1,RecorderManager中通过AudioSession进行PCM音频录制,录制格式为WAV格式,并开启levelMeterState,可以实时显示录制音量
2,获取PCM音频录制buffer,每20ms一个buffer,开启三个buffer来循环input到Encapsulator中进行speed音频编码
3,Encapsulator中对于每一个输入的buffer放到oprationQueue中,按顺序进行encode,对于encode完的speex buffer,按页为单位,通过NSFileHandle寻址到当前已经写入的文件末尾,写入当前页
4,录制过程中生成的PCM音频buffer只存在于内存中,占用少量内存,每转换一个buffer的speex格式则将其存储到本地文件中
5,在8khz下每秒钟占用1kB的本地存储空间(8khz对于语音说话足够)

播放原理:
1,PlayerManager中将本地存储的speex文件整个读入内存中
2,Decapsulator中将speex一段段的读入buffer,通过SpeexCodec进行decode
3,decode的PCM音频buffer输入到RawAudioDataPlayer中
4,RawAudioDataPlayer 将PCM的buffer音频通过AudioQueueEnqueueBuffer进行播放输出

引用:http://blog.csdn.net/a_asinceo/article/details/46487125 iOS安卓互通方案

你可能感兴趣的:(移动端(iOS,安卓)即时通讯长链接传输格式speex音频文件录制及播放原理)