Android Audio - 支持多个APK同时录音

  • 原理说明
  • Android4.4 修改方法
  • Android5.1 & 6.0 修改方法
  • Android8.1 修改方法
  • Android9.0 修改方法

原理说明

Android Audio - 音频子系统框架简析

  • 在 Android4.4 上适配是最麻烦的, 整个录音框架原本就是基于单 RecordThread 线程设计的, 里面的 RecordTrack(buffer管理对象)也仅一个, 不同于Android6.0的 RecordTrack是以数组的形式管理的

  • 在 Android6.0 对比录音框架

变化如下
1.RecordTrack对象的管理
2.就是函数返回值. 无论是getInput 还是 getInputForAttr 函数主要的作用就是找到一个需求匹配的 profile文件, 然后创建一个 RecordThread 线程. 最后返回一个 audio_io_handle_t input 一个随机的整数值
  • 在 Android8.1 上 getInputForAttr 类似 Android4.4. 但是里面的 AudioInputDescriptor 类有一些变量的变化, 所以适配起来问题不大


[适用环境]:

在特定的产品需求下, 常驻后台录音进程(思必驰, 天猫, 讯飞, 百度, Roboo), 在启动第三方录音apk, 例如微信, QQ物联等.
可以规避:
startInput() input 18 failed: other input already started.
AudioRecord: start() status -38 报错. 正常录音.

Android4.4 修改方法

Android Audio - 支持多应用同时录音_Android4.4修改方法

Android5.1 & 6.0 修改方法

Android Audio - 支持多应用同时录音_Android5.1 & Android6.0 修改方法

Android8.1 修改方法

Android Audio - 支持多应用同时录音_Android8.1修改方法

Android9.0 修改方法

Android Audio - 支持多应用同时录音_Android9.0修改方法

[补充]:

在 ATM7051H_Android4.4、RK3128_Android4.4、RK3128_Android6.0、RK3126C_Android8.1、RK3326_Android9.0上测试验证过. 请放心食用.

[补充]:

有问题可以邮件沟通 iFinelio Tower <[email protected]>

更多相关文章

  1. 开发Android第三步,签名证书,真机安装编译程序
  2. cocos2d-x 播放视频 on Android
  3. 异步加载图片
  4. Android跨进程通信IPC之19——AIDL
  5. android 垂直 SeekBar 源代码(VerticalSeekBar)
  6. Android(安卓)不得不知Tag的妙用
  7. Android中捕捉menu按键点击事件的方法
  8. 多个Activity跳转的小结
  9. Android中 网络框架Volley的用法

随机推荐

  1. Kotlin 写 Android 单元测试(三),Mockito mo
  2. Android 学习
  3. Google Maps Android API v2初体验
  4. 深入理解 Android消息处理系统的原理
  5. [置顶] 【Android】 基于XMPP Smack框架
  6. Android Manifest标签之manifest,meta-da
  7. 【Unity3D】Unity3D与Android的交互通信(A
  8. Android(安卓)Studio 简单介绍和使用问题
  9. android开发资源合集
  10. Android: TextView常用属性的用法详解