转载请注明出处和网址链接:

http://blog.csdn.net/syhost/article/details/31419749

此篇本是在Z5S的官方4.4内測版出来时写的, 主要是看到其在audio的配置文件中没有es325的相关配置, 因此断定不支持z5sn的一些audio特性,本想喷一下, 结果第二天官方自己写了..

本人先前在安智论坛也发过一篇通过改动snd_soc_msm的audio配置文件来调整一些音量的方法, 但本人4月之后编译的Z5S的Android4.4的ROM已经採用了新的audio架构,这点跟Nubia Z5S官方4.4的是一样的, 因此先前的文章提到的方法已经不适用于Z5S的官方4.4以及本人4月之后公布的Android4.4 ROM.

从曾经我公布的Z5S的Android4.4的ROM的反馈情况来看, 应该能够推断Z5S的扬声器或者audio相关的器件的质量批次一致性太差, 同一个配置文件 在不同人的手机上出来不同的效果, 有的人反馈声音小了, 有的人还反馈已经破音! 预计扬声器质量问题的可能性比較大, 由于即使audio部分採用的电容电阻是5%或者10%精度的(手机上的器件没有这么差精度的吧!)也不可能区别大到这样的程度!

接下来看看Android4.4里高通的音频配置文件, 这个文件是 system/etc/mixer_paths.xml, 这个跟之前4.2里的audio配置文件system/etc/snd_soc_msm/snd_soc_msm_xxxx

看似区别非常大, 实际含义以及功能是一样的,无非是把曾经的文本格式转成了xml格式的,(这种改变实际上让这配置文件看起来更清晰了) 都是通过对应字段来配置audio的參数来架起HAL层和内核的桥梁, 也能够通过对应字段的參数来设置内核中audio的參数比方音量打开通道啥的!

从曾经移植Z5S的4.4内核的经验以及官方4.4的audio配置文件来推断此次Nubia Z5S的官方4.4 公測版H202的audio部分内核中应该没有加入不论什么Nubia的特性(当然耳机检測肯定加了), 只是这里指的Nubia的特性无非是Z5Sn的es325音频调理芯片而已, 对于z5s来说倒是没啥影响. 曾经官方4.2的audio配置文件snd_soc_msm_Taiko中能够找到es325的相关配置. 我之前移植的z5s的4.4内核后来也移除了es325相关的代码!

可是就算z5s上没有es325芯片, 就连双MIC中的后相机mic(dmic3) 从官方音频配置文件里也没看到对应的配置, 这里我就不确定了是不是z5s上本来就没有双mic.

再来对照下官方的音频配置文件跟我改动的版本号的差异, 来分析下假设调整一些音量,调大音量或者防止破音.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lob3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

从上面几处对照发现官方的配置跟我改动的基本的区别在蓝牙  incall music  和 listen-voice-wakeup 几个方面 其它的差异基本就是音量相关的了.  这里的listen-voice-wakeup 曾经还没在别的机型看到过,难道是声纹解锁之类的?

这里就是上面所说的官方4.4里没有后MIC的配置部分, 右边是我改动的dmic3的配置部分, 只是后面的字段里我也没调用这个mic, 由于经測试发现会影响通话质量造成回声啥的, 这样用录音软件录音时也不能打开双MIC了.

这是主mic的參数配置, 我的配置跟官方的一样, 或者说都是高通caf默认的參数!

我之前改动音频配置文件调整音量的原则是在尽量大声的条件下不破音,  和官方的音量配置对照下看看:

speaker这个字段就是设置主扬声器(对z5s来说就是后扬声器)的參数的, 右边我的配置文件中音量设置的是85, 假设刷官方4.4 UI2.0出现破音的同学能够尝试把左边官方的配置文件音量这个88改成85或者80等更小的数字试试!

handset 这个字段是配置听筒參数的, 右边我的配置里加了个设置RX1通道音量的參数, 只是好像确实也没起作用, 因此右边官方的就没有, 也能够自己尝试在官方4.4里加上这个看能不能调整听筒音量, 注意 这里的听筒不是在通话时起作用的, 通话时的听筒设置在另外一个字段里,以下有介绍!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lob3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

handset-mic 这个字段 是设置主话筒的參数的, 右边我加了一个设置话筒音量的參数, 只是不确定是否起作用了!

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lob3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

headphones这个字段是设置耳机的音频參数的,能够调打开通道,每一个通道的音量之类的, 右边我的配置參数里加了调整音量的部分, 实測是能够起到调整耳机音量的效果的, 注意实际起音量调节作用的是 <ctl name="RX1 Digital Volume" value="65" />   <ctl name="RX2 Digital Volume" value="65" /> 这两句

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc3lob3N0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

voice-handset 这个字段 才是真正的用来设定通话时听筒參数的, 左边官方的配置跟上面handset没差别, 右边我的配置里加入了调整音量 <ctl name="RX1 Digital Volume" value="99" />这句 和 添加滤波调整通话质量<path name="sidetone-handset" />这句,详细的滤波參数在sidetone-handset字段里设置.

voice-speaker字段是用来设置通话时外放的參数的, 右边我的配置里加了设置音量的部分.

voice-headphones 顾名思义, 就是设置插耳机时通话耳机的參数了, 右边我加了滤波相关!

voice-headset-mic 这是是设置插耳机时通话mic的參数, 注意跟上面主mic不同的是 这里的耳机mic是 模拟mic 而不是上面的dmic(数字mic), 所以有了adc调节音量的參数!

<ctl name="ADC2 Volume" value="64" />  注意这里 右边我的音量设置跟官方的音量设置区别大是由于我加了数字音量调整<ctl name="DEC5 Volume" value="70" />, 实际二者应该出来的效果是差点儿相同的!

要注意 headset 跟 handset 是两个不同的概念, 后者是听筒, 前者是耳机,

另外headphones也是耳机只是跟headset区别在mic上!

最后要特别强调一点, 依据上面的介绍来改动音频參数时, 上面各个字段里引號中的字符要一模一样, 包含空格都不能有不同!

Nubia Z5S官方4.4 UI2.0音频Audio部分简单分析(也适用于其它8974/8064机型)以及降低破音出现几率的方法的更多相关文章

  1. [Android4.4.3] Nubia Z5S Mokee4.4.3 RC2.0 by syhost

    这个ROM先前在Mokee官网公布过,但一些人測试bug不少,因此已经撤下, 但又有人反馈跟之前RC1.0版的bug差点儿相同, 所以再次在网盘单独公布, 截图以及注意事项见之前的RC1.0的帖子, ...

  2. Nubia Z5S 官方4.4 201内測版 内核版本号信息

    从egl推断内核的的版本号: OpenGL ES Shader Compiler Version: E031.24.00.14 Build Date: 04/29/14 Tue Local Branc ...

  3. Nubia Z5S 基于官方H207/4.4内核的Mokee4.4.4 RC3.2 (2014.7.31修复呼吸灯(能亮依旧不能呼吸))

    特别感谢 yun3195 和 轻描淡写Yhw  帮忙測试 转帖请务必注明本链接地址: http://blog.csdn.net/syhost/article/details/36444259 此ROM ...

  4. Nubia Z5S(高通公司MSM8974) QHSUSB_BULK砖的方法节省模式(随着win7在恢复recovery分区案例)

    Nubia Z5S在某些异常情况或按组合键进入QHSUSB_BULK状态, 这种模式的现象, 猜想windows(实例win7)即使在数据线, 它会出现在计算机n载,甚至会提示要格式化某些分区(这里要 ...

  5. velocity.ui2.0所有的内置动画名称

    velocity升级到2.0后api发生了变化,按照原来的名称已经不能调用原来的动画效果,新的名称如下:velocity.ui2.0所有的内置动画名称 bounce flash headShake j ...

  6. JavaScript多个音频audio标签,点击其中一个播放时,其他的停止播放

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Android 4.4 Kitkat 音频实现及简要分析

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/jingxia2008/article/details/26701899 在 Android 4.4 ...

  8. JS指定音频audio在某个时间点进行播放,获取当前音频audio的长度,音频时长格式转化

    前言: 今天接到一个需求,需要获取某个.mp3音频文件的时间长度和指定音频audio在某个时间点进行播放(比如说这个视频有4分钟,我要让它默认从第2秒的时候开始播放),这里当然想到了H5中的audio ...

  9. 从0开始写一个简单的vite hmr 插件

    从0开始写一个简单的vite hmr 插件 0. 写在前面 在构建前端项目的时候,除开基本的资源格式(图片,json)以外,还常常会需要导入一些其他格式的资源,这些资源如果没有第三方vite插件的支持 ...

随机推荐

  1. JSP内置对象——request对象

    request对象request对象封装了由客户端生成的HTTP请求的所有细节,主要包括HTTP头信息.系统信息.请求方式和请求参数等. 通过request对象提供的各种方法可以处理客户端浏览器提交的 ...

  2. Markdown 格式如何转换成 Word?

    参考资料:https://www.zhihu.com/question/22972843/answer/136008865 markdown语法简洁,写作效率极高,非常适合网络博客.邮件.笔记等非正式 ...

  3. 【Python初级】由生成杨辉三角代码所思考的一些问题

    杨辉三角定义如下: 1 / \ 1 1 / \ / \ 1 2 1 / \ / \ / \ 1 3 3 1 / \ / \ / \ / \ 1 4 6 4 1 / \ / \ / \ / \ / \ ...

  4. 克鲁斯卡尔(并查集)hdu 1233

    还是畅通工程 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  5. 【BZOJ 1398】 1398: Vijos1382寻找主人 Necklace (最小表示法)

    1398: Vijos1382寻找主人 Necklace Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 308  Solved: 129 Descrip ...

  6. 【51Nod 1238】最小公倍数之和 V3

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1238 设\(A(n)=\sum\limits_{i=1}^n\frac{ ...

  7. JZYZOJ1330 土地购买 dp 斜率优化

    不用long long的话只能ac一半的点而且完全查不出来错...放弃cin保平安..   x[i],y[i]分别为第i块土地的长和宽,输入后需要排序然后去掉冗余数据,最后得到的x[i]递增y[i]递 ...

  8. Java并发(十四):并发工具类——CountDownLatch

    先做总结: 1.CountDownLatch 是什么? CountDownLatch 允许一个或多个线程等待其他线程(不一定是线程,某个操作)完成之后再执行. CountDownLatch的构造函数接 ...

  9. bzoj 2565: 最长双回文串 manacher算法

    2565: 最长双回文串 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem. ...

  10. HTML5 元素拖动 - 实现元素左右拖动, 或更改自身排序

    1.拖放(Drag 和 drop)是 HTML5 标准的组成部分. 拖放是一种常见的特性,即抓取对象以后拖到另一个位置.在 HTML5 中,拖放是标准的一部分,任何元素都能够拖放. 浏览器支持:Int ...