修改android系统默认采样率

通常使用android系统播放都会是一个固定的采样率输出,无论源是什么采样率,AudioFlinger都会将其重采样成同一个采样率的数据输出,一般平台都默认是44.1K或者48K,如果要修改成为其他采样率也比较简单,但需要注意几个地方。

在android P平台上实验,只要改下/vendor/etc/audio_policy_configuration.xml中声明的primary output的采样率即可,比如原本默认是48k,现在修改为192k:

当前改了这里只是audioflimger将会以192k的采用率对原始音频进行重采样输出,hal层在open声卡的时候可能仍然是以48k的参数去打开,所以hal层open声卡的地方也需要修改。

修改了audioflnger和hal,上层是支持了,而alsa plaform层和codec driver也是需要声明支持192k的,否则在open声卡时就会提示打开失败,这个支持声明在plaform driver和与之绑定的codec driver的snd_soc_dai_driver结构体里,另外soc输出的clk也要可以正确的根据采样率的变化而变化,codec硬件也要支持这么高的采样率,以ti 5805 codec driver为例修改声明如下:

#define TAS5805M_RATES         (SNDRV_PCM_RATE_8000 | \
               SNDRV_PCM_RATE_11025 | \
               SNDRV_PCM_RATE_16000 | \
               SNDRV_PCM_RATE_22050 | \
               SNDRV_PCM_RATE_32000 | \
               SNDRV_PCM_RATE_44100 | \
               SNDRV_PCM_RATE_48000 | \
               SNDRV_PCM_RATE_192000)

做了以上修改之后,尝试播了一下MP3,主观听觉得音质有点差,可能是这样的升采样处理,android的算法不太好吧。

如果动态的调整android的采样率,即绕开android系统的重采样机制,让音频保持原始采样率输出有待进一步研究了。。。

### 修改高通传感器的采样率设置 对于 Qualcomm® RB3 Gen 2 平台上的传感器,可以通过 `see_workhorse` 工具来调整特定传感器的采样率。此工具允许通过命令行参数指定不同的配置选项,从而简化了传感器测试和数据收集过程[^2]。 具体来说,要修改某个传感器的采样率,可以使用 `-sample_rate` 参数配合其他必要参数一起调用 `see_workhorse` 命令: ```bash see_workhorse -sensor=<sensor_type> -sample_rate=<min|max|number> ``` 其中 `<sensor_type>` 是目标传感器类型,而 `-sample_rate` 后面跟的是希望设定的具体采样速率模式或数值。根据 Android 系统定义的不同延迟级别,可以选择如下几种预设值之一作为采样率[^3]: - `SENSOR_DELAY_NORMAL`: 默认情况下每 200 毫秒采集一次数据; - `SENSOR_DELAY_UI`: 用户界面交互场景下推荐使用的频率,大约每隔 60 毫秒获取新读数; - `SENSOR_DELAY_GAME`: 游戏应用中常用的较高刷新速度,约等于每 20 毫秒更新一次测量结果; - `SENSOR_DELAY_FASTEST`: 尽可能高的取样密度,理论上接近实时响应但实际取决于硬件能力。 如果需要更精细控制而非上述标准档位,则可以直接输入具体的毫秒级间隔数字代替这些宏定义名。值得注意的是,在某些特殊应用场景里还可能存在额外的要求或者限制条件影响最终可选范围[^4]。 例如,为了将以最快的速度从加速度计获得数据,应该执行下面这条指令: ```bash see_workhorse -sensor=accelerometer -sample_rate=max ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值