android AudioRecord 从 MIC 读取幅度

2024-01-07

我正在尝试录制麦克风的声音并绘制实时图表。我能够记录并绘制图表。问题是使用下面的代码记录的值不准确,例如......下图是我在完全没有声音时得到的结果。我看过使用 fft 的示例,但我不确定这对我的情况是否有任何帮助,因为我正在尝试绘制时域图,并且我认为没有必要将其转换为频域(目前)。其他人使用的是平均功率,这可能会有所帮助,但我不确定。

谢谢你的帮助。

bufferSize = AudioRecord.getMinBufferSize(RECORDER_SAMPLERATE,RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING);

    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,
            RECORDER_SAMPLERATE, RECORDER_CHANNELS,RECORDER_AUDIO_ENCODING, bufferSize);

    short data [] = new short[bufferSize];

    while (!Thread.interrupted()) {

        recorder.startRecording();

        recorder.read(data, 0, bufferSize);

        recorder.stop();

        for (short s : data)
        {
            try {
                Thread.sleep((long) 300.00);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            postUI (Math.abs(s));
        }
    }

    recorder.release();

尝试使用更高的采样率。最大值为 48000,但标准值为 44100。

此外,麦克风也可能只是记录背景噪音。

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

android AudioRecord 从 MIC 读取幅度 的相关文章

随机推荐

  • Sublime Text 3 中的 Qt 构建系统不起作用

    我有以下无法正常工作的构建系统文件 cmd qmake project cmd qmake cmd make working dir project path folder 没有生成任何文件 通常应创建以下文件 qmake project
  • Coredata - “NSObjectInaccessibleException - CoreData 无法完成错误”

    我是核心数据的新手 仍在弄清楚具体细节 这个错误已经困扰我几个小时了 我似乎找不到解决方案 任何帮助是极大的赞赏 问题是这样的 我有两个视图 它们从服务器获取数据并更新 UI 我已经这样设置流程了 view1 gt 从服务器发送 HTTP
  • 使用 TSA URL 和 Java API 进行时间戳记

    任何人都可以帮助我理解为签名添加时间戳时使用的流程和 Java API 我需要使用 TSA url 对文件进行签名并为其添加时间戳 http timestamp globalsign com scripts timstamp dll htt
  • 延迟加载 GTM 是个好主意吗

    为了缩短我正在开发的 Web 应用程序的初始加载时间 我想在加载应用程序后运行 GTM 脚本 我想知道这是否是一个好主意 如果我这样做 可能会产生什么副作用 TL dr 看来懒加载GTM也可以 长版 一般来说 我会按照创建者建议的方式运行脚
  • ZF2路由配置

    我刚刚构建了一个 zf2 项目 但遇到了配置问题 当我访问 mydomain com 时 此路由按照配置文件中指定的方式发送到应用程序模块 索引控制器 索引操作 但是如果我输入 mydomain com otheraction 这不会路由到
  • Django {{ MEDIA_URL }} 空白 @DEPRECATED

    在过去的几个小时里 我一直在为这个问题绞尽脑汁 我无法显示 MEDIA URL 在设置 py MEDIA URL http 10 10 0 106 ame TEMPLATE CONTEXT PROCESSORS django contrib
  • 如何使用 Material Design Lite 设置选择框格式?

    我已经通读了组件列表并通读了提供的 CSS 但我没有看到任何提及选择框的内容 只是常规输入 文本 单选 复选框 文本区域等 如何将 Material Design Lite 与选择框结合使用 使用这些类进行常规文本输入可以让您成功一半 但这
  • 如何创建指向网页某个子部分的深层链接?

    有谁知道如何创建指向单个网页的一小部分的深层链接 维基百科似乎已经破解了它 但我似乎无法在网络上的任何地方找到答案 PS 保持简单 仅当目标包含构成可在片段标识符中使用的 目标锚 的标记时 才可以链接到页面上的特定位置或元素 以 在链接中
  • java.awt.AWTError:无法使用 ':0' 作为 DISPLAY 变量的值连接到 X11 窗口服务器

    我一直在尝试运行一个Docker 内 Ubuntu VM 上基于 Java AWT 的应用程序 该应用程序非常简单 并且可以通过 Eclipse 在 Windows 上完美运行 它只是打开一个窗口并打印 hello world 事实上 当我
  • 突出显示 pandas 图中的最后一个数据点

    我有很多与此类似的图表 import pandas as pd dates pd date range 2012 01 01 2013 02 22 y np random randn len dates 365 Y pd Series y
  • 为什么当路径满足时 NWPathMonitor 不给出路径更新?

    我有一个简单的类名为网络路径监视器看起来如下 class NetworkPathMonitor ObservableObject Cancellable Published var path NWPath nil let monitor N
  • 编译器可以优化从堆到堆栈的分配吗?

    就编译器优化而言 将堆分配更改为堆栈分配是否合法和 或可能 或者这会打破假设规则 https stackoverflow com questions 15718262 what exactly is the as if rule 例如 假设
  • 为什么当构建错误退出时,来自 docker 文件的 docker 构建镜像会创建容器?

    我正在使用 docker 从 docker 文件构建图像 在此过程中发生了一些错误 因此构建退出并显示错误代码 当我跑步时docker images我可以看到未标记的图像 所以我尝试删除它docker rmi xxxxx 但它总是失败 它说
  • 通过react-image-crop模块获取裁剪后的图像

    你能帮我如何通过react image crop模块获得输出 裁剪图像的来源 吗 上传组件如下所示 class MyUpload extends Component constructor super this state src sour
  • 无法在 64 位 Linux 上运行 32 位应用程序

    我安装了 Ubuntu 8 04 64 位的最小安装版 当我尝试运行一些 32 位程序时 例如我的jhead程序 我收到消息No such file or directory 我认为这可能是一个库问题 但是当我这样做时 ldd jhead
  • 将特征用户描述添加到多个自定义 C++ BLE GATT 服务

    我正在尝试使用以下命令将一些特征用户描述添加到我的自定义 BLE GATT 服务中mbed API https developer mbed org teams Bluetooth Low Energy 到目前为止我的工作是基于this h
  • 在 Windows 7 上安装调试工具来分析小型转储

    我一直在尝试安装 调试工具 以便尝试分析服务器崩溃 Windows Server 2008 R2 的转储文件 我过去曾经这样做过 但我找不到如何安装 找到 Windows 7 的调试工具 我读过这篇知识库文章 http support mi
  • CMake 无法从已安装的 Visual Studio 2015 中识别 C 编译器

    我一直在尝试为 vtk 安装 CMake 但收到此错误消息 The C compiler identification is unknown The CXX compiler identification is unknown 我正在使用
  • 将函数存储在列表中并稍后调用它们[重复]

    这个问题在这里已经有答案了 我想将函数存储在列表中 然后在程序中调用该列表中的这些函数 这对我有用 但是我不知道它是否正确 example functions my functions would actually get user inp
  • android AudioRecord 从 MIC 读取幅度

    我正在尝试录制麦克风的声音并绘制实时图表 我能够记录并绘制图表 问题是使用下面的代码记录的值不准确 例如 下图是我在完全没有声音时得到的结果 我看过使用 fft 的示例 但我不确定这对我的情况是否有任何帮助 因为我正在尝试绘制时域图 并且我