在app开发录音功能的时候 会遇到回音的问题,今天就来借助android 自带的api 来解决回音的问题
1.通过设置AudioManager.MODE_IN_COMMUNICATION模式进行录音,自动实现回声消除;
音频采样率必须设置8000或者16000,通道数必须设为1个。
AudioManager可以通过setMode()来设置声音的模式。而通过设置声音模式为MODE_IN_COMMUNICATION,
和一些声音参数的设置可以启动Android自身的硬件回声消除来实现回音消除。
设置声音模式的时候需要权限“android.permission.MODIFY_AUDIO_SETTINGS”。不同的声音模式声音的输出方式不一样。
当设置为MODE_IN_COMMUNICATION模式时,声音默认是听筒出声,这时候如果是在连麦模式而且主播没有戴耳机的情况下显然这样不符合,
这时候需要调用audioManager.setSpeakerphoneOn(true)切换成外放出声。
当插上耳机后,声音不需要外放,需要从耳机出声,这样可以设置audioManager.setSpeakerphoneOn(false)。
源码为:

AudioManager audioManager = (AudioManager)mContext.getSystemService(Context.AUDIO_SERVICE)

Android app 录音回音消除两种方法相关推荐

  1. Android实现圆形图像的两种方法(Glide和Picasso)

    Android实现圆形图像的两种方法 先上效果图 Glide Picasso CircleTransform.java(圆形图片工具类) 先上效果图 Glide 在app的build.gradle中引 ...

  2. android 画布叠加,Android实现图片叠加效果的两种方法

    本文实例讲述了Android实现图片叠加效果的两种方法.分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(Vi ...

  3. android 图片叠加xml,Android实现图片叠加效果的两种方法

    本文实例讲述了Android实现图片叠加效果的两种方法.,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(View v) { // ...

  4. Android4清理代码缓存,Android清除应用缓存的两种方法

    第一种 使用ActivityManager中的clearApplicationUserData方法,代码如下: ActivityManager am = (ActivityManager) getSy ...

  5. Android中添加背景音乐的两种方法

    前些天在尝试自己写一个Android小游戏--flybird 基本功能实现了,就想添加声音,然后上网查了查,大多是一样,可是用到我这,有些却不可以用,所以我还用了两种方法. 下面谈谈这两种方法. 方法 ...

  6. Android发送短信的两种方法

    Android发送短信代码的两种方法 Android发送短信代码的两种方法 有两种方法可以实现发送短信: 其一是使用intent-startActivity,URI数据格式为"smsto:n ...

  7. android相册如何加背景音乐,Android中添加背景音乐的两种方法

    前些天在尝试自己写一个Android小游戏--flybird 基本功能实现了,就想添加声音,然后上网查了查,大多是一样,可是用到我这,有些却不可以用,所以我还用了两种方法. 下面谈谈这两种方法. 方法 ...

  8. android 模拟apk安装广播,android模拟器安装apk的两种方法

    今天好奇apk怎么安装到模拟器上,研究一下,发现两种方法比较简单: 一,把所要安装的apk,例xxx.apk拷贝到sdk下的adb的路径下,也就是和adb在同一个文件夹,比如我的是D:Program ...

  9. Android设备设置代理的两种方法

    本文将介绍两种给给android设备设置网络代理的方法,一种是直接在网络设置中操作,另一种是通过adb指令操作 第一种最常用的通过设置页面操作(此处以夜神模拟器为例讲解,其他设备操作方式基本类似) 操 ...

最新文章

  1. 详解Pattern类和Matcher类
  2. linux2.6内核链表
  3. android 插件化 模块化开发(apkplug)
  4. 危机下,你还敢提加薪吗?
  5. Linux 发行版本简介 (zz)
  6. Java 泛型中的PECS原则
  7. NOI 2017 整数(线段树)
  8. 抓包分析数据(Charles以及HttpCanary)
  9. C#之Chart控件使用
  10. 建站提示:B2C网站建设的注意事项
  11. 窃听手机执法如何保存隐私
  12. nmap 扫描 STATE 显示closed
  13. android 闪屏页 动画,记一次 Android 闪屏页适配
  14. python excel筛选统计_懂点EXCEL就行!教你利用Python做数据筛选(上)
  15. Java核心技术卷一、二读书笔记(PDF)分享
  16. 关于notifydatasetchange的一些理解
  17. 现代通信原理与技术 matlab,现代通信原理与技术.pdf
  18. DR5加强版2019全新 | PS磨皮插件高端人像后期修图工具
  19. Go语言结构体指针为nil时的小坑
  20. jQuery贼简单的选项卡切换

热门文章

  1. hexo网页相册页面的制作
  2. 开发中经常用到的特效效果
  3. 爬虫有道词典,高精度加密版
  4. 高并发,如何提高并发量
  5. 细节很重要 - 平安信用卡的注销
  6. wxid中文是什么_微信号wxid怎么登录?wxid与微信号是什么关系?
  7. 【2020高考同题征文•全国I卷】志向高远,心胸宽阔
  8. BOM:窗口位置、页面视口大小、window.open
  9. 科学的失控与范式的超越——《侏罗纪公园》读后感
  10. JS实现延时3秒刷新