[RK3288][Android6.0] 调试笔记 --- Audio的Voice Call无法静音问题
来源:互联网 发布:网络改号电话 编辑:程序博客网 时间:2024/05/16 07:58
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)时,
解决方法:
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}
};
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_DB if (volIdx < curve[Volume::VOLMIN].mIndex) { // out of bounds return 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}
};
阅读全文
1 0
- [RK3288][Android6.0] 调试笔记 --- Audio的Voice Call无法静音问题
- [RK3288][Android6.0] 调试笔记 --- edp屏无法点亮问题
- [RK3288][Android6.0] 调试笔记 --- 无法安装需系统权限的apk问题
- [RK3288][Android6.0] 调试笔记 --- Audio录音PCM数据抓取
- [RK3288][Android6.0] 调试笔记 --- Audio之分离DTMF tones
- [RK3288][Android6.0] 调试笔记 --- Audio分离DTMF tone引起的异常
- [RK3288][Android6.0] 调试笔记 --- 开机视频无法播放
- [RK3288][Android6.0] 调试笔记 --- tts语音无法播放
- [RK3288][Android6.0] 调试笔记 --- touch无法获取坐标点
- [RK3288][Android6.0] 调试笔记 --- hwclock命令无法使用
- [RK3288][Android6.0] 调试笔记 --- X264测试程序无法使用
- [RK3288][Android6.0] 调试笔记 --- 无法连接相机
- [RK3288][Android6.0] 调试笔记 --- 关闭按键音后无法录音问题
- [RK3288][Android6.0] 调试笔记 --- user版本固件升级无法开机问题
- [RK3288][Android6.0] 调试笔记 --- ECHI上的USB Camera无法打开
- [RK3288][Android6.0] 调试笔记 --- 调试串口的更换
- [RK3288][Android6.0] 调试笔记 --- 实时录音会有呲呲噪音问题
- [RK3288][Android6.0] 调试笔记 --- I2C通信失败问题
- git实现代码提交自动部署到相应的web服务器
- Java实现-不同的路径2
- 前端与后端的关系
- 几种代码量统计工具的安装及使用
- 056、057、058-C++
- [RK3288][Android6.0] 调试笔记 --- Audio的Voice Call无法静音问题
- VC++ 取得 其他app的ListBox 内容
- 华为实习day4
- php上下文(Context)介绍
- 为Azure虚拟机添加第二块网卡
- Font Helvetica, Times-Roman is not embedded
- Android 音频数据传输流程图
- Unsupervised Learning of Video Representations using LSTMs
- Selenium设置等待时间的几种方法