问题标签 [pulseaudio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gstreamer - 如何在pulseaudio中的RTP流式传输期间将频率更改为48kHz
在流式传输 rtp 数据包时,我想默认将频率更改为 48kHz,最大频率为 44.1kHz 是否有任何 api 可以直接在 pulseaudio 中执行?
c - pulseaudio 模块在 32 位机器上导致断言 (max_latency <= (10*((pa_usec_t))
我正在运行pulseaudio-1.1 的Ubuntu 32 和64 位平台上编译pulseaudio 1.1 附带的module-virtual-sink.c。当我在 32 位机器上加载模块时,我得到以下断言:
在模块-virtual-sink.c 中:
传递错误的值。i->sink->thread_info.min_latency, i->sink->thread_info.max_latency 正在传递 0 和 500 而不是 500 和 100000。
与在 soft_volume 之前的 pa_sink_new 中的 pulseaudio 创建的结构相比,我的 gcc 生成的 thread_info 结构中缺少 32 位
导致读取错误值并将其传递给 pa_sink_set_latency_range_within_thread。
thread_info.soft_volume.channels 是 0 而不是 2。编译后的代码看错了位置 - 地址 0x8b6c640 而不是 0x8b6c644
我怀疑编译器配置问题或源不匹配。不用说,这是在使用 ../configure 创建 config.h 文件后使用 GCC 测试的
任何想法可能导致这种行为?
c - pa_simple_new() 失败:连接被拒绝
我收到错误
在尝试调用pa_simple_new
函数时。这是代码。
c - 未定义的引用——局部符号
我正在尝试向 ac 文件添加一个新函数“pa_context_set_sink_input_paused”。这个 c 文件是 pulseaudio 的一部分。我也能够成功地编译pulseaudio。
我添加到 c 文件中的代码(其中定义了许多其他函数,并且这些函数被声明为全局函数)。
在头文件中,函数声明如下
像这样编译:
但是当我尝试使用这个新函数运行一个程序时,它会返回“未定义的引用”。
我尝试运行 nm 命令并检查 libpulse.so 中是否存在新函数
该函数返回给我它找到了它..
它被标识为带有字母“t”的本地符号。
我无法理解正在发生的事情。你能帮我解决这个问题吗??
谢谢, 萨西什
更新:-
多谢你们,
谢谢, 萨西什
java - Java Sound API:从声音端口读取和写入
我有一个返回端口而不是 SourceDataLine 的混音器。如何从该端口读取数据?我找不到 Port 的任何子类。我可能遗漏了一些非常明显的东西,但我找不到任何可以访问端口的读写类。
编辑:我正在尝试使用来自 icedtea 的 java pulseaudio 扩展来向混音器播放声音,而不是默认的混音器。
编辑#2:在 java sound api 的其他地方,我似乎认为如果您请求 Port.Info,它实际上会返回一个目标/源数据线。我还没有测试过这个理论,但是我查看了其他人的源代码。问题是,我使用的混音器返回的是端口的子类,而不是目标/源数据线。
pulseaudio - 从 systemd 服务调用的 pactl 总是报告“pa_context_connect() 失败连接被拒绝”
我已经设置了一个 systemd 服务文件以在系统启动时执行一些 pactl 操作以进行测试过程。虽然从终端执行命令时可以正常工作,但通过启动服务从 systemd 服务运行相同的脚本时,我总是得到“pa_context_connect()失败连接被拒绝”。我还在服务文件中使用了“User=”指令,以确保自动登录用户与用于运行服务命令的用户匹配。
我已经读到这在某种程度上与 pulseaudio 会话在 systemd 服务的无环境上下文中无效有关,但我无法进一步弄清楚。
c - 使用 libpulse 播放多个流
如何audio
使用libpulse
. 我知道可以通过对多个流求和并使用播放,libaudio
但是否可以在lib pulse
api 上编写多个流并让 PulseAudio 进行求和?
audio - 使用 ALSA API 记录每个通道
我正在使用游戏机的眼睛,插入树莓派。我有树莓派识别 PSEye 的内置麦克风阵列,我可以使用采样输入电平
现在很明显,这显示了所有 4 个通道的电平相加在一起。我想做的是分别记录每个频道。这可以使用 ALSA API 吗?
我浏览了这个http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html
并查看了这个http://www.linuxjournal.com/article/6735?page=0,2
但两者似乎都不是我需要的。我想这也类似于通过 ALSA 对立体声麦克风的两个通道进行采样。最终,我希望能够在特定时间点对每个麦克风的 dB 进行采样。
linux - (如何)我可以从我的计算机没有产生的麦克风中获取所有声音的流吗?(使用 PulseAudio 或其他东西)
我一直在玩一些语音到文本和文本到语音的系统,并且遇到了一个问题,即当计算机发出它可以识别的声音时,它开始从自身接收命令。为避免这种情况,我想要麦克风拾取的所有声音流,这些声音不是由计算机本身产生的。
我看到 PulseAudio 有一个回声消除模块,但到目前为止,我无法区分它的输出和原始麦克风输出:它仍然包含麦克风拾取的来自计算机扬声器的所有声音。我想知道默认的回声消除器是否与我想要的相反(即,它消除了麦克风听到的声音被发送到扬声器)。
知道我该怎么做(最好用pacmd
)?我已经彻底混淆了自己试图为回声消除器指定非默认源,并徘徊在环回模块和其他可能不相关的东西中。我对 PulseAudio 知之甚少,还没有找到很好的介绍(我查看了很多PulseAudio 文档,但没有看到任何相关内容),并且可能只是遗漏了一些简单的东西。我对回声消除显然不起作用感到沮丧,我找不到有关它的文档,也找不到其他人的工作示例。
在此先感谢您的帮助!
其他可能相关的细节:我在联想 Thinkpad T410 上运行 Ubuntu Saucy。我使用的是内置麦克风和扬声器(所以,我很确定他们使用的是同一张声卡,我不会遇到时钟漂移问题)。我的实际应用程序通过 GStreamer 获得声音,但 GStreamer 从 PulseAudio 获得声音,而且我认为 GStreamer 本身没有 AEC 功能。如果有不同的方法可以做到这一点,我很乐意切换到那个。