flutter声音流如何表示pcm数据?

2024-01-04

我需要制作一个通过图形化音频数据来可视化的应用程序,并且我已经尝试过扑动声 https://pub.dev/packages/flutter_sound and 音流 http://47.240.41.80/packages/sound_stream获取原始音频数据。然而,这两个库都将声音捕获为 16 位 pcm,但返回 Uint8list 流。所以我不明白他们如何用 8 位整数表示 16 位 pcm。

我试图按原样绘制出数字,但似乎不正确。以下是我用来绘制 30hz 正弦波的代码,以及 sound_stream 提供的数据。

final Uint8List data; 
  @override
  void paint(Canvas canvas, Size size) { 
    double dx = size.width / data.length;
    for(int i = 1; i < data.length; i+=1){
    canvas.drawLine(Offset((i - 1) * dx, (data[i-1].toDouble()/256) * size.height), Offset((i) * dx, (data[i].toDouble()/256) * size.height),  Paint()..color = Colors.red..strokeWidth=1);
    }
  }

It's a Uint8List因为这是一个字节数组,并且是跨原生 Dart 边界移动的内容。因此,您需要将该字节数组视为 16 位整数的列表。使用ByteBuffer去做这个。

final Uint8List data;
final pcm16 = data.buffer.asInt16List();
// pcm16 is an Int16List and will be half the length of data
// expect values in pcm16 to be between -32768 and +32767 so
// normalize by dividing by 32768.0 to get -1.0 to +1.0

您可能会发现获得的字节数是预期的两倍。如果您以 16kHz 采样,预计每秒 32k 字节,但当以 16 位整数查看时,您每秒将获得 16000 个样本。

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

flutter声音流如何表示pcm数据? 的相关文章

随机推荐

  • PrimeFaces 单击逐行展开

    I have 行扩展 http www primefaces org showcase ui data datatable expansion xhtml数据表
  • 使用自定义 SKAction 的 EaseOut 操作

    我有以下自定义 SKAction 工作 但作为 EaseIn 而不是 EaseOut 我想让它缓出 我使用网络上找到的各种缓动方程来纠正它 却惨遭失败 let duration 2 0 let initialX cameraNode pos
  • 谁能破译这段代码?

    以下是我在访问日志中看到的一些奇怪代码示例 有人能解码这个吗 例如 xb3 xe1 xdd H t xd5 xd2 xf0ml xf1 x10 xee xa0 xeaY xa5 xe7 x81d xd5 x1f xd9 QI xd9 xfb
  • teamcity 中的 Mercurial VCS 证书验证失败

    我尝试使用 teamcity 配置 Mercurial 但出现以下错误 stderr 中止 错误 ssl c 504 错误 14090086 SSL例程 SSL3 GET SERVER CERTIFICATE 证书验证失败 尝试了以下签名证
  • 提交后台作业并用结果更新阶段

    我对 JavaFX 2 完全是个菜鸟 今天早上开始使用我正在改编的 HelloWorld 我需要使用后台线程的结果更新文本节点 对于 JavaFX2 我需要注意什么特别的地方吗 或者提交可调用对象并更新文本就足够了 指向教程的指针将不胜感激
  • 如何使用面向对象技术验证 PHP 中的表单字段

    我创建了一个 验证 类来验证两个字段 即 名字 和 姓氏 它工作不正常 当字段为空时它显示错误 但是当我提交包含非空字段的表单时 错误仍然存 在 如何在表单提交时执行此操作
  • 在node.js中分离文件服务器和socket.io逻辑

    我对 Node js 相当陌生 我发现随着项目规模的增长 将项目分成多个文件非常复杂 我之前有一个大文件 它既充当文件服务器又充当多人 HTML5 游戏的 Socket IO 服务器 理想情况下 我希望将文件服务器 socket IO 逻辑
  • 如何在同一活动中实现具有不同项目列表和不同点击操作的多个微调器

    我想在Android中实现两个不同的微调器 微调器有不同的数据集 这是带有年龄的微调器 它使用定义的包含所有年龄范围的字符串数组 例如18 20 19 21 etc
  • 如何使用 play 框架渲染一个简单的 html 页面?

    这是使用 play 框架版本 2 渲染纯 html 文件的方法吗 我不想将其放在 public 文件夹中 因为稍后会添加一些动态信息 这是我的解决方案 在路线中 我做了一些配置 如下所示 GET hello html controllers
  • 如何在Android中打开/关闭导航抽屉时立即刷新列表

    我已经创建了导航抽屉并在列表中显示项目 我的列表是静态的 但我正在显示点 因此 当用户选择列表中的项目并进行一些活动时 他就会获得积分 所以我想在他得到后立即更新积分 我怎样才能做到这一点 下面是我的代码 活动类别 Override pro
  • 在文本模式下的 Emacs 中设置 4 个空格缩进

    I ve been unsuccessful in getting Emacs to switch from 8 space tabs to 4 space tabs when pressing the TAB in buffers wit
  • “useEffect”钩子只触发一次?

    我正在为 React Native 开发一个猜测游戏 用户输入一个数字 手机尝试猜测它 每次手机生成猜测时 用户都可以单击 更大 更低 当用户输入数字并且计算机猜测彼此相等时 我们将进入游戏结束屏幕 游戏结束画面未渲染 在屏幕上渲染游戏的逻
  • 将 pytest 与 xdist 结合使用时如何打印输出

    我正在使用 py test 来运行测试 我将它与 pytest xdist 一起使用来并行运行测试 我想在测试中查看打印语句的输出 我有 Ubuntu 15 10 Python 2 7 10 pytest 2 9 1 pluggy 0 3
  • 如何将网页与 Facebook 页面关联? fb:pages 是否已弃用?

    在网页上 我包括 以及各种开放图表信息 我最近用这个号码创建了 Facebook 页面 当链接在 Facebook 上共享时 og image 等可以工作 但与我尝试链接的 Facebook 页面 没有连接 相反 共享的右上角有一个 i 其
  • 标签的“lang”属性有什么用?

    在 HTML 中 最好有一个lang属性在 e g 这有什么用 如果用于翻译 即使语言设置为英文 文档中全是中文文本谷歌翻译检测到它是中文 而不是英文 这意味着谷歌忽略了lang属性 我引用的是W3C http www w3 org Int
  • 如何在CF中获取java类

    我想访问 Coldfusion 文件中 java 方法的返回值 我已经加载了coldfusion文件中的所有jar文件并成功获取了java类对象 使用类对象 我想访问返回一个java类方法Set 但我无法获得任何返回值 这是我的Java代码
  • Mongo 2.6.1 - 无法识别的管道阶段名称:'$out'

    我有一个 Mongo 集合 我需要将一组对象移动到一个单独的集合中 该集合采用以下格式 id ObjectId name description widgets someprop somevalue someprop somevalue 我
  • 如何将一个Div放在另一个透明背景的Div上? [复制]

    这个问题在这里已经有答案了 我想将一个具有透明背景的 div 1 放在另一个 Div 2 的顶部 因为我想让div 2 包含的所有元素禁用 所以 如果我将 div 1 放在 div 2 之上 那么 div 2 内的元素将不再是点击器 利用Z
  • ASP.NET MVC2 母版页 - 服务器端脚本未呈现,第一个括号被转义

    我有一个母版页 我将其用作模板 以允许我定义每个页面的元标记 我的母版页采用包含元信息的模型 这是我尝试执行以下操作的示例 但是 当我在页面呈现后检查 HTML 时 我得到以下信息 如果我从内容中删除外部引号 例如con
  • flutter声音流如何表示pcm数据?

    我需要制作一个通过图形化音频数据来可视化的应用程序 并且我已经尝试过扑动声 https pub dev packages flutter sound and 音流 http 47 240 41 80 packages sound strea