在android中使用AudioRecord录制立体声

2023-12-07

我正在寻找有关让 audioRecord 使用顶部安装和底部安装的麦克风的明确答案,因此我没有 2 个相同的(单声道)通道。我想知道我可以事先进行哪些轮询以确保小工具能够提供良好的流。

我正在开发 Galaxy Nexus 5,但无法使其正常工作,因此我还无法使其在所有设备上保持稳定。

我已经尝试了所有MediaRecorder.AudioSource.

AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.CAMCORDER,
    sampleRate, AudioFormat.CHANNEL_IN_STEREO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

并实例化两条记录:

AudioRecord audioInputStream1 = new AudioRecord(Media.Recorder.MIC,
    sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

AudioRecord audioInputStream2 = new AudioRecord(Media.Recorder.CAMCORDER,
    sampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT,
    samplesPerBuffer * bytesPerSample)

如果有人确实在 Nexus 5 上进行了立体声录音,我将非常感谢您的帮助。我应该搬到 alsa 还是tinyAlsa?

谢谢, j


你的问题与以下密切相关我的问题答案似乎取决于设备:

1) 对于某些设备(例如三星 S2 Plus GT-I9105P, HTC One M7, HTC One M8, G3 LG-D855, Nexus 5,...)根本无法通过内置麦克风胶囊激活真正的立体声录音。尽管在某些情况下,制造商的摄像机应用程序会产生真正的立体声,但您找不到任何其他应用程序能够做到这一点。

2)对于其他一些设备,只有少数特定的组合MediaRecorder.AudioSource以及例如采样率(或其他基本设置)可实现真正的立体声录音(例如摩托罗拉 Moto G needs MediaRecorder.AudioSource.CAMCORDER和 48kHz 采样率).

3) 在大多数带有两个麦克风胶囊的设备上AudioFormat.CHANNEL_IN_STEREO足以激活真正的立体声录音。

不幸的是,如果不root设备,Alsa或tinyAlsa很可能无法解决问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在android中使用AudioRecord录制立体声 的相关文章

随机推荐

  • 我可以同时使用 Twitter Bootstrap 和 jQuery UI 吗?

    我正在使用 Twitter Bootstrap 我想使用 Bootstrap 中不可用的 自动建议 而 jQuery UI 有自己的自动建议方法 我可以同时使用两者吗 会导致带宽超载吗 查看jquery ui 引导程序 来自自述文件 Twi
  • Rust impl Trait 作为函数返回类型[重复]

    这个问题在这里已经有答案了 我有以下功能 其中Command是一种特质 pub fn parse arguments matches ArgMatches gt Result
  • CancellationToken 的竞争条件,其中 CancellationTokenSource 仅在主线程上取消

    考虑一个 Winforms 应用程序 其中我们有一个可以生成一些结果的按钮 如果用户第二次按下该按钮 则应取消第一个生成结果的请求并开始新的请求 我们正在使用以下模式 但我们不确定某些代码是否是防止竞争条件所必需的 请参阅注释掉的行 pri
  • 使用officer包编辑Word表格

    我正在尝试使用 officer 编辑Word表格的值 非常简单地找到包含它的 段落 library officer doc read docx template docx doc cursor begin doc doc cursor re
  • 需要格式化 JAXB 输出的帮助

    我有一些对象 比如说两个 A 和 B 这些对象来自同一类 我需要使用 JAXB 封送这些对象 并且输出 XML 应采用以下形式
  • Java SE 还是 Java EE(标准或企业)?

    我开始做大量 Java EE 开发工作 可以在我的家用计算机上安装 Java EE 而不是 JRE 吗 另外 GlassFish 可以在 JRE 上运行还是需要 Java EE Java EE 是一个抽象 API GlassFish 是可用
  • 防止更新禁用视图上的注释/文件

    我注意到当网格不允许更新 插入或删除时 可以在网格上插入 更新 删除注释和文件 假设形式相同 有办法关掉它吗 我正在编写一个自定义页面 并希望阻止用户修改任何内容 包括注释和文件 我的网格包含以下内容 MyGrid AllowInsert
  • C++ 中的多重调度

    我想了解什么是多重调度 我读了很多不同的文本 但我仍然不知道多重调度是什么以及它有什么好处 也许我缺少的是使用多重调度的代码片段 请问 您能否使用多重分派在 C 中编写一小段代码 以便我可以看到它无法正确编译 运行 因为 C 只有单分派 我
  • 为 azure vm 和 godaddy 配置自定义域名

    最近我开始在 azure 配置我的虚拟机 我使用 nginx 部署了 4 个项目 但在使用 godaddy 配置我的虚拟机时遇到了问题 要在 Godaddy 中配置域名 我需要设置至少 2 个 DNS 地址 但我的虚拟机只有 1 个 DNS
  • 液体和算术

    我正在研究一些分页 我想知道是否有办法告诉 Liquid 只显示 5 页 我正在寻找的输出是 78 9 最后 gt gt 我目前的逻辑有效 但它显示了所有 30 个页面 for count in 2 paginator total page
  • ggplot2:geom_smooth 选择观测值连接(相当于 geom_path())

    我在用ggplot2创建海洋的垂直剖面 我的原始数据集创建 尖峰 以便形成平滑的曲线 我希望使用geom smooth 我还希望线条根据观察的顺序 而不是根据 x 轴 进行 当我使用geom path 它适用于原始情节 但不适用于结果geo
  • Postgres:使用游标更新的令人惊讶的性能

    考虑以下两个 Python 代码示例 它们实现了相同的效果 但具有显着且令人惊讶的性能差异 import psycopg2 time conn psycopg2 connect dbname mydatabase user postgres
  • 虚函数和多态性

    假设我有这个 class A public virtual int hello A a class B public A public int hello B b bla bla 所以 A是一个抽象类 1 在B类中 我定义了一个假设覆盖A类
  • 如何在 Wix 中为 MSI 创建自定义 UI?

    我想使用 Wix 增强 MSI 的 UI 对话框 您能给我指出提供创建此类 UI 选项的最佳工具吗 另外 是否可以在 MSI 向导中显示动画 GIF 图像 您想要查看 嵌入式 UI 有时也称为 外部 UI 但是一旦您沿着这条路走下去 您就必
  • 在 PHP 中用另一个符号替换反斜杠

    一直在努力用另一个符号 例如 替换反斜杠只是为了指示反斜杠的位置 因为我无法发送诸如 C xampp etc 之类的字符串 通过 url 作为 GET 变量 所以我想我首先用另一个符号替换该字符串中的反斜杠 然后通过 url 发送 然后将它
  • powershell中哈希表的数组/对象键

    使用数组键创建哈希时 如何生成键来查找哈希值 也就是说 无需从哈希的枚举器获取它 a a 1 b 2 c c1 3 使用常规数组似乎不起作用 k1 c c1 a ContainsKey k1 false 但是 如果在创建时使用数组对象 这似
  • IE 在高度 > 4096px 时显示透明度错误?

    当我在大页面上遇到问题时 我正在开发一个带有透明背景覆盖的 JavaScript 对话框 如果页面很大 透明覆盖层将是纯色 即不再透明 我做了一些测试 发现这只发生在覆盖层高度大于 4096 像素时 嗯 可疑 那是 2 12 有人可以验证这
  • 如何在 iOS (iPhone) 中使用 opencv 比较图像

    我想在我的项目中比较 iPhone 相机拍摄的 2 张图像 我正在使用 OpenCV 来做到这一点 还有其他更好的方法吗 如果我得到 相似度 那就太好了 我使用 OpenCV 以下代码进行图像比较 void opencvImageCompa
  • 找不到源中事件 ID 的描述

    当我将日志写入 Windows 事件日志时 我收到以下事件 此消息的根本原因是什么 以及如何修复它 非常感谢 事件 ID 51001 的描述 无法找到源 RRWS 引发此问题的组件 您的本地未安装事件 计算机或安装是 已损坏 您可以安装或修
  • 在android中使用AudioRecord录制立体声

    我正在寻找有关让 audioRecord 使用顶部安装和底部安装的麦克风的明确答案 因此我没有 2 个相同的 单声道 通道 我想知道我可以事先进行哪些轮询以确保小工具能够提供良好的流 我正在开发 Galaxy Nexus 5 但无法使其正常