Alsa全双工通信

2023-12-24

我想使用alsa实现全双工通信。我首先编写了捕获和回放程序,并使用 UDP 通信将数据从捕获的进程传输到回放进程。当我运行两个进程时工作正常,其中一个正在捕获,另一个正在播放(将其视为从 A 到 B 的半双工),当我尝试实现另一个半双工(从 B 到 A 的半双工)时,问题就出现了然后我得到管道破裂错误从麦克风读取数据时。怎么解决这个问题?任何帮助,提前致谢。

注意:我在不同的系统上运行两个进程


当应用程序必须等待 PCM 设备时,它会进入睡眠状态并在下一个周期边界被唤醒。因此,读/写的最佳大小是一个周期(或其倍数)。

一旦某些帧可用,您就应该读取/写入示例数据。

要减少溢出/欠载的可能性,请增加缓冲区大小。 (在捕获设备上,增加缓冲区大小不会增加延迟。)

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

Alsa全双工通信 的相关文章

  • [Linux_音频]_0_0_使用alsa的API,设置和获得声音

    只是一个使用alsa的API 设置和获得声音的入门例子 之后的事情就参考API自己玩吧 api网址 http www alsa project org alsa doc alsa lib group simple mixer html 也可
  • 龙芯1B核心板使用alsa音频播放设置,aplay播放

    龙芯1B核心板是默认启用alsa音频工具的 只需要进行一些配置就能使用 1 先检查你的板子的alsa工具是否正常 aplay l 可以查看 xff0c 是否已正确安装音频驱动 如果正常 xff0c 能看到你的音频驱动的信息 可能会出现 xf
  • DAPM之一:概述

    DAPM Dynamic Audio Power Management 对应结构体是snd soc dapm widget和snd soc dapm route 对应的操作函数是snd soc dapm new controls snd s
  • DAPM之二:audio paths与dapm kcontrol

    在用alsa amixer controls时 除了我们之前提到的snd soc add controls添加的kcontrols外 还有一些多出来的controls 其实多出来的那些都是属于dapm kcontrol 主要用于切换音频路径
  • ALSA:防止扬声器欠载的方法

    我正在非交错模式下播放单通道音频 当我将音频数据写入扬声器时 我遇到了问题 ALSA lib pcm c 7339 snd pcm recover underrun occurred 我是这样写的 printf d snd pcm avai
  • 以 root 身份运行 python 脚本

    我有以下脚本 usr bin env python import sys import pyttsx def main print running
  • 录制成WAV文件

    自从我发帖以来这个问题 我一直在尝试自己从原始 PCM 数据编写一个有效的 WAV 文件 我已经成功编写了 FLAC 转换器 经过测试并且可以工作 但它不会对我一直在编写的 WAV 文件进行编码 我不确定我做错了什么 我一直在网上搜索其他个
  • GNU Radio:使用声音输出作为输入源

    In gnuradio 伴侣我使用音频源块作为下一个块的输入信号 一切工作几乎都很好 唯一的小问题是我从麦克风收到信号 这是正常行为 我宁愿直接播放音频信号 而不必通过我的扬声器 我房间的空气和麦克风 所有这些都会产生信号损失并增加噪声 我
  • 从 C 代码设置 ALSA 主音量

    我一直在寻找一个简单的 C 代码示例来设置 ALSA 混音器的主音量 但找不到任何简单的内容来完成这个所谓的常见操作 我对 ALSA 完全不熟悉 所以制作我自己的最小示例需要时间 如果有人能提供一个 我会很高兴 以下内容对我有用 参数体积应
  • alsa_aplay 不在 Android 上录制

    我刚刚开始研究 android 我试图了解 android 音频子系统 alsa 是如何工作的 我正在 windows 7 64 位 上运行的虚拟盒中运行 android 映像 我正在摆弄 alsa utils 来录制声音 我试过alsa
  • aplay 使用文件而不是 stdin 和 stdout 通过管道传输到 arecord

    下面的命令将记录来自默认设备的数据并将其输出到 stdout aplay 将播放来自 stdin 的数据 arecord D hw 0 aplay D hw 1 为什么我们更喜欢 stdin 和 stdout 而不是如下所示写入文件并从中读
  • ALSA:不支持非交错访问?

    ALSA s snd pcm hw params set access http www alsa project org alsa doc alsa lib group p c m h w params html ga4c8f1c6329
  • 将 apply 的管道输出传送到 centos 中的记录

    我正在尝试自动化 websocket 客户端的一些测试 该客户端根据命令连接到服务器 该服务器基本上是一个语音到文本引擎 客户端支持来自麦克风的音频流 这样人们就可以实时录制自己的声音并将其传输到引擎 我在 centos 虚拟机中运行客户端
  • 以编程方式在 Linux 上查找可用的声卡

    有没有办法使用 asoundlib 和 C 以编程方式获取系统上可用声卡的列表 我想要它具有相同的信息 proc asound cards 您可以使用迭代卡片snd card next 从值 1开始获得第0张牌 这是示例代码 编译它gcc
  • ALSA 记录 - 了解内存映射

    我尝试使用 ALSA 从 USB 音频设备获取输入并将其作为一系列内容写入磁盘signed short价值观 我最终得到的是看似有效的数据块 其中散布着大块的零 我猜测我的缓冲区设置不正确并且没有正确使用内存映射 我正在尝试什么 采样率 8
  • Android:如何配置“tinymix”以使用“tinycap”录制系统音频

    在 Android 中 目前无法使用 Android SDK 录制系统音频 因此 我尝试了一下 TinyALSA 自 Android 4 起 希望可以重新路由音频输出 以便可以录制它 当我在设备上调用 tinymix 时 我得到以下配置 c
  • 枚举捕获 ALSA 设备并从中捕获

    我正在编写一个 C 程序 我想枚举系统中的所有捕获设备 实际上 我知道我有三个网络摄像头加上 集成 麦克风 识别它们并同时开始捕获它们 我使用 snd device name hint 枚举所有 PCM 设备 然后使用 snd device
  • 通话录音 - 使其在 Nexus 5X 上运行(可以生根或定制 ROM)

    我正在尝试使用AudioRecord with AudioSource VOICE DOWNLINK在 Nexus 5X Android 7 1 我自己的 AOSP 版本 上 我已经过了权限阶段 将我的 APK 移至特权应用程序 并进行了调
  • Alsa:如何在 2 个输出上复制流并保存系统配置?

    我的声卡是 Audigy SE SB0570 我想不仅在扬声器上而且在耳机上同时播放相同的立体声流 我在空的 asoundrc 上尝试这个配置 pcm quad type multi slaves a pcm hw 0 0 green ho
  • Alsa 带有来自调制解调器的 PCM 接口

    我有一个基于 imx28 CPU 的定制板 CPU 的串行端口连接到调制解调器的 PCM 输出 我必须为调制解调器的 PCM 接口开发一个驱动程序 使其成为 ALSA SoC 的一部分 您能指出内核树 中与我的设置重新组合的一些驱动程序吗

随机推荐

  • 如何将 cin 与可变数量的输入一起使用?

    我昨天参加了一个编程比赛 我们必须读取表单的输入 n a1 a2 an m b1 b2 bm 其中第一行表示有多少个输入 下一行包含那么多输入 所有输入都是整数 我知道如果每行都有相同数量的输入 比如 3 我们可以写类似的内容 while
  • 使用urwid,如何通过按键一次显示一行?

    尝试创建一个简单的函数 当按下回车键或向下翻页键时 一次显示文本文件中的一行 我don t希望每次都能清除线路 换句话说 我需要暂停程序直到按下下一个按键 因为它只显示第一行 我尝试了一段时间 确实 没有成功 谢谢你的帮助 Handle k
  • 将 git lfs 存储库重置为指针

    我有一个git LFS https git lfs github com存储库已签出 所有的二进制文件都是pointers 我用以下方法提取了真正的二进制文件 git lfs pull include some binaries 我使用了二
  • 如何设置 grunt + browserify + tsify + babelify?

    我正在努力设置 grunt browserify tsify babelify 带调试 下面的 gruntfile 设置确实编译了 typescript 但没有发生 babel 转换 有人可以让我知道该怎么做吗 我可能需要使用 gulp 来
  • 使用 C 函数扩展 PostgreSQL 时实现高性能事务

    我的目标是实现将数据块从数据库复制到 C 函数中以进行处理并作为查询结果返回的最高性能 我是 PostgreSQL 的新手 目前正在研究移动数据的可能方法 具体来说 我正在寻找与 PostgreSQL 相关的细微差别或关键字 以快速移动大数
  • Laravel:在哪里存储全局数组数据和常量?

    我刚刚开始使用 Laravel 我需要重写几年前制作的整个系统 使用 Laravel 4 作为基础框架 在我的旧系统中 我曾经有一个constant php声明了一些常量的文件 以及globals php文件包含大量数组集 例如 类别状态
  • Babel:replaceWithSourceString 给出意外的标记 (1:1)

    我正在尝试替换动态 导入 语句 下面是一个检查导入是否以加号结尾的示例 module exports function babel return visitor ImportDeclaration function path state i
  • 如何获取Appium服务器日志

    有没有办法在测试脚本中获取 Appium 服务器日志 driver manage logs get appium server 或将 appium 服务器日志重定向到控制台 我的主要目的是单独获取仪器日志而不是所有日志 info debug
  • 有什么办法可以限制 Twitter 时间轴小部件中的推文吗?

    我正在使用 Twitter 的时间轴小部件 如下所示 并且希望将推文数量限制为 5 默认情况下为 20 该网站是为使用屏幕阅读器的视障人士而嵌入的 屏幕阅读器被困在小部件内 用户被迫通过 Tab 浏览所有 20 条推文才能退出 Twitte
  • 如何克隆 MemoryStream 对象?

    我有一个MemoryStream经过的对象Stream类型参数 Stream是 C 中的抽象类 我想克隆它以创建另一个单独的MemoryStream对象与原始对象的当前位置并创建一个新的XMLReader出来 所以我将能够阅读其内容 这就是
  • 取消引用 void 指针时的reinterpret_cast 行为

    在与某人争论他在评论中提出的建议时这个答案 https stackoverflow com a 21177728 241631 我遇到了一些 gcc4 8 和 VS2013 拒绝编译的代码 但 clang 很高兴地接受它并显示正确的结果 i
  • 如何强制 GHC 内联 FFI 调用?

    我制作了小型 C 模块来提高性能 但 GHC 不内联外部函数 并且调用成本消除了加速 例如 test h int inc int x test c include test h int inc int x return x 1 Test h
  • Haskell 树木地图

    我的树定义为 data Tree a Leaf a Node Tree a Tree a deriving Show 我还声明了一个测试树 myTree Node Node Leaf 1 Leaf 2 Leaf 3 我想要做的是创建一个函数
  • 接连显示 UIMenuController 的问题

    我正在使用 UIMenuController 的新自定义功能将 复制 以外的内容添加到菜单中 以便剪切并粘贴到 Web 视图中 我所做的就是获取对共享 UIMenuController 的引用 将 UIMenuItems 的 NSArray
  • 确定从 spacy 中提取的文本是否是一个完整的句子

    我们正在研究从 PDF 中提取的句子 问题是它包括标题 页脚 目录等 有没有办法确定我们将文档传递给spacy时得到的句子是否是一个完整的句子 有没有办法过滤句子的某些部分 例如标题 一个完整的句子至少包含一个主语 一个谓语 一个宾语 并以
  • 如何使用 Dagger 2 在 Activity 或 Fragment 范围内交换测试双精度?

    编辑 小心 我已经删除了这个问题中提到的旧存储库 请参阅我自己对问题的回答以获取可能的解决方案 并随时改进它 我指的是我的帖子here https stackoverflow com questions 40405839 dagger 2
  • 如何将文件夹上传到 Google Colab?

    我想运行一个使用目录中定义的许多头文件的笔记本 所以基本上我想将整个目录上传到 Google Colab 以便我可以运行笔记本 但我无法找到任何此类选项 只能上传文件而不是完整的文件夹 那么有人可以告诉我如何将整个目录上传到 google
  • 如何阻止 Maven 重命名已安装的 jar

    我正在使用 mvn install install 命令将我们的内部文件安装到 Maven 存储库 以这种方式安装的所有 Jars 都会自动添加版本名称作为后缀 由于我们有许多带有 Jars 名称的批处理脚本 这对我们来说非常不方便 如何关
  • Backbone 和 TypeScript,一段不幸的婚姻:构建类型安全的“get”?

    我正在尝试将 TypeScript 与 Backbone js 一起使用 它 有效 但是 Backbone 的 get 和 set 失去了大部分类型安全性 我正在尝试编写一个可以恢复类型安全的辅助方法 像这样的事情 我会将其放入我的模型中
  • Alsa全双工通信

    我想使用alsa实现全双工通信 我首先编写了捕获和回放程序 并使用 UDP 通信将数据从捕获的进程传输到回放进程 当我运行两个进程时工作正常 其中一个正在捕获 另一个正在播放 将其视为从 A 到 B 的半双工 当我尝试实现另一个半双工 从