android 音频重采样_ANDROID音频系统散记之二:resample-1

Android上的resample处理

默认的情况下,Android放音的采样 率固定为44.1khz,录音的采样率固定为8khz,因此底层的音频设备驱动只需设置好这两个固定的采样率。如果上层传过来的采样率与其不符的话,则 Android Framework层会对音频流做resample(重采样)处理。

Resample的大致流程如下:

图片1

AudioResample作为最基本的类,回放和录音resample最终都会调用到这个类;有兴趣可以研究下resample的算法和实现,这里不阐述。

AudioMixer仅仅提供给回放使用的,这个类功能不仅仅是resample了,混音、音量设置都由这个类实现的。

录音:

1、AudioFlinger::RecordThread是录音线程类,每当有录音请求时,进入AudioFlinger::openInput创建这个线程;

2、在创建这个线程的同时,调用readInputParameters,检查上层传过来的录音采样率是否与底层音频接口固定的录音采样率一致;如果不一致,则调用AudioResampler::create创建一个resampler;

3、关于 AudioFlinger::RecordThread::ThreadLoop,当录音工作线程启动后,会不断循环该ThreadLoop方法,主要 是:1)读取底层音频设备获取录音数据mBytesRead = mInput->read(mRsmpInBuffer, mInputBytes); 2)对录音数据做重采样 mResamp

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值