Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

现象
AudioService中把音量设置到最小,理论上speaker应该听不到声音,但是依然还有。

分析
根据上一篇音量设置文章,参考:http://blog.csdn.net/kris_fei/article/details/72957142
这时对应的curve是
const VolumeCurvePoint Gains::sSpeakerVoiceVolumeCurve[Volume::VOLCNT] = {
    {1, -24.0f}, {33, -16.0f}, {66, -8.0f}, {100, 0.0f}
};

当audio service设置index为最小(index = 1)时,

float Gains::volIndexToDb(Volume::device_category deviceCategory,const StreamDescriptor& streamDesc,int indexInUi)
{
.....//volId计算出来是0int volIdx = (nbSteps * (indexInUi - streamDesc.getVolumeIndexMin())) /(streamDesc.getVolumeIndexMax() - streamDesc.getVolumeIndexMin());//curve[Volume::VOLKNEE1].mIndex为0,因此不会返回VOLUME_MIN_DBif (volIdx < curve[Volume::VOLMIN].mIndex) {         // out of boundsreturn VOLUME_MIN_DB;} else if (volIdx < curve[Volume::VOLKNEE1].mIndex) {//实际上是跑进这里来了segment = 0;} else if (volIdx < curve[Volume::VOLKNEE2].mIndex) {segment = 1;} else if (volIdx <= curve[Volume::VOLMAX].mIndex) {segment = 2;} else { return 0.0f;}
......
}

解决方法
kris@:~/rk3288/frameworks/av/services/audiopolicy/enginedefault$ g df
diff --git a/services/audiopolicy/enginedefault/src/Gains.cpp b/services/audiopolicy/enginedefault/src/Gains.cpp
index df853db..49555aa 100644
--- a/services/audiopolicy/enginedefault/src/Gains.cpp
+++ b/services/audiopolicy/enginedefault/src/Gains.cpp
@@ -95,7 +95,7 @@ Gains::sDefaultVoiceVolumeCurve[Volume::VOLCNT] = {
 
 const VolumeCurvePoint
 Gains::sSpeakerVoiceVolumeCurve[Volume::VOLCNT] = {
-    {0, -24.0f}, {33, -16.0f}, {66, -8.0f}, {100, 0.0f}
+    {1, -24.0f}, {33, -16.0f}, {66, -8.0f}, {100, 0.0f}
 };

[RK3288][Android6.0] 调试笔记 --- Audio的Voice Call无法静音问题相关推荐

  1. [RK3288][Android6.0] 调试笔记 --- touch无法获取坐标点

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 有网友遇到调试touch的时候能触发中断,但无法获取坐标点 具体可参考文章 [RK3288][An ...

  2. [RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 现象: 之前文章 [RK3288][Android6.0] 调试笔记 - AndroidTool两 ...

  3. [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 之前文章[RK3288][Android6.0] 调试笔记 - 伪电池驱动添加 阐述了如何添加一个 ...

  4. [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...

  5. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  6. [RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 根据5.1的双屏显示patch,在android6.0上修改了下,因为没硬件环境,所以未经验证,仅供参 ...

  7. [RK3288][Android6.0] 调试笔记 --- 调试串口的更换

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 假设项目有需求要将调试串口uart2 改成 uart1, 改动如下 (还未验证,先分享给大家,有问 ...

  8. [RK3288][Android6.0] 调试笔记 --- RT5640录音时的Codec寄存器列表

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 Codec: RT5640 此文给调试RT5640播放无声音的朋友做参考. RT5640用的是RT ...

  9. [RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用【转】

    本文转载自:http://blog.csdn.net/kris_fei/article/details/78748313 Platform: RK3288  OS: Android 6.0  Kern ...

  10. android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 ddr和gpu的clock都受dvfs模块管控, 所以只要执行: root@rk3288:/ # ...

最新文章

  1. 到底是先更新数据库还是先更新缓存?
  2. rhel6硬盘或U盘安装注意的问题
  3. 在VS2005中 GridView导入Excel的两点小技巧-附源码
  4. python与excel做数据可视化-用Python进行数据可视化的10种方法
  5. 注册表操作命令reg
  6. 《scikit-learn》使用交叉验证优化KNN参数
  7. SDN/NFV若干问题
  8. 连接access时的REGDB_E_CLASSNOTREG(0x80040154)错误
  9. 蜘蛛侠的入侵:互联网公司robots协议法律指南
  10. 你们要的Android计算器,今天它来了~
  11. CMD查看端口和进程
  12. 长江大学计算机学院江琼琴,长江大学外国语学院硕士研究生校友名录(2005-2012级)...
  13. matlab 调整灰度,matlab灰度变换函数
  14. 微信小程序支付PHP实例
  15. 如何优雅地解决最新版Chrome,即Chrom 67以后,无法离线安装插件的问题
  16. eas k5.4 (七):v4.17 - Util(ization) Est(imated)
  17. 为什么Google Home将成为Amazon Echo最可怕的噩梦?
  18. abp框架连接mysql报错_ABP框架应用-MySQL数据库集成
  19. Win8传感器—加速度计、陀螺仪、指南针
  20. 软回车变回车 上下标符号

热门文章

  1. 明天9:00 | ECCV 2022 全球博士TalK——计算机视觉领域顶会
  2. iOS 基于 RxSwift + Moya 搭建易测试的网络请求层
  3. Kaggle数据竞赛入门-Titanic生存预测
  4. 怎样练出完美肌肉:[2]完美背肌
  5. meanshift聚类算法跟踪原理
  6. 维和医疗分队患者信息管理系统的开发与研究
  7. 好看视频出击,从Q2财报看百度的短视频谋局
  8. 网络OSI七层及各层作用
  9. python高级--美国人口分析(Numpy,Pandas)
  10. 今日份PS练习|玻璃材质背景练习