版权申明:未经允许请勿转载。转载前请先联系作者(hello@yeshen.org)

这篇文章是上一篇文章留下的手尾。
测试的时候被投诉的点有两个,一个是声音忽大忽小,二是调节通话音量能影响初始化声音。

可以处理。

public void syncVolume() {if (mAudioTrack == null) return;if (mActivity != null) {final AudioManager am = (AudioManager) mActivity.getSystemService(AUDIO_SERVICE);am.setStreamVolume(AudioManager.STREAM_VOICE_CALL, 1, AudioManager.STREAM_VOICE_CALL);int max = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);max = max <= 0 ? 1 : max;int volume = am.getStreamVolume(AudioManager.STREAM_MUSIC);double v = (volume * volume * 10.0D) / (max * max);mAudioTrack.setVolume(v);} else {mAudioTrack.setVolume(5);}
}

解释下:

  1. 固定 STREAM_VOICE_CALL 的音量
  2. 通过二次函数,在低音量的时候,调节步进小,高音量的时候,调节步进大。

webrtc音量调节的方法之二相关推荐

  1. webrtc服务器janus通信方法学习二

    webrtc服务器janus通信方法学习二 网关部署了一个客户端可以利用的接口.这个janus.js库以透明的方式使用它,其中与之交流的接口都封装好了,也可以自己使用其他方式进行通信,我不使用js接口 ...

  2. 安卓仿苹果音量调节_Android实现音量调节的方法

    本文实例讲述了Android实现音量调节的方法.分享给大家供大家参考.具体如下: main.xml布局文件: android:orientation="vertical" andr ...

  3. BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】

    2748: [HAOI2012]音量调节 Time Limit: 3 Sec  Memory Limit: 128 MB Submit: 2010  Solved: 1260 [Submit][Sta ...

  4. 解析音频输出调节音量的原理以及调节的方法

    简述 通常,音量调整可以在音频流水线的两个主要阶段进行:数字域和模拟域.当我们在系统设置中调整音量时,通常是在模拟域(即音频设备)进行调整.在这种情况下,所有的音频输出(包括来自不同应用的音频)都会受 ...

  5. 调节音量的各个方法——AudioManager的使用

    //获取AudioManager实例对象 AudioManager audioManage = (AudioManager) context.getSystemService(Context.AUDI ...

  6. Android Audio实战——音量调节(十二)

    对于音量调节上一篇文章已经做了简单介绍,无论是软件调节还是硬件调节,最终实现都是调用到 AudioService.这一篇文章主要分析一下音量调节的相关代码. 一.APP调用 1.音量调节接口 App在 ...

  7. 设置计算机关机静音,Shortcuts 捷径控制 Windows 电脑:静音开关、音量调节、待机、关机...

    在 iPhone 上通过 Shortcuts 捷径控制 Windows 电脑:静音开关.音量调节.待机.关机 演示视频 : 教程: 一.使用方法: 1.Windows 上安装一个 SSH 服务器软件并 ...

  8. Android音频——音量调节

    一.音量相关概念 1. 相关术语解释 track volume : 单个App设置音量时设置的是这个,它只影响本App的音量. stream volume :设置某一stream的音量,Android ...

  9. Android音频 —— 音量调节

    一.音量相关概念 1. 相关术语解释 track volume : 单个App设置音量时设置的是这个,它只影响本App的音量. stream volume :设置某一stream的音量,Android ...

最新文章

  1. 【BZOJ3242】【UOJ#126】【NOI2013】快餐店
  2. Android AsyncTask用法介绍
  3. 卡牌大师怎么玩_用卡牌大师如何上分
  4. 【NOI2013】树的计数【树的遍历】【期望】
  5. conda deactivate python3_conda进行python环境隔离
  6. 一次900万+数据量的 SQL 查询优化分析【上百倍性能优化】
  7. python字典(dict)合并的操作
  8. MacBook高效优先设置,你都开启了吗?
  9. 刘帅嵌入式系统-MLA指令
  10. 天意PE维护系统 V2021.7.16版
  11. 应届生面试这样准备,最能展现自己优势!
  12. w3school中文离线手册
  13. 《追寻生命的意义》摘抄
  14. Excel 属性及方法
  15. (预处理合集)手写数据集MNIST(2)——Spyder
  16. 【真题分享】2021京东春招java开发面试
  17. codeforces703B
  18. sqlserver存储过程报错:当前事务无法提交,而且无法支持写入日志文件的操作。请回滚该事务
  19. Unreal 生成星空Skybox
  20. JDK版本8u191与8u192的区别, jdk小版本号奇数与偶数的区别

热门文章

  1. 商场三十六计——第9计 “隔岸观火”
  2. 关于英语学习,你想怎么学习,你对英语学习的印象是什么,喜欢什么样的老师,一起来谈谈吧!
  3. 首次导入的P12钥匙串密码问题
  4. python打招呼的代码_LearnPython
  5. 昆仑万维300418
  6. 二阶振荡环节的谐振频率_2个惯性环节相乘=1个全部阻尼范围下的二阶振荡环节?...
  7. 机器学习----聚类算法
  8. 贝叶斯统计中的边缘分布
  9. avada function注释
  10. DEM水文分析_提取水系