python - 使用 python-gstreamer 指定声卡

标签 python linux gstreamer

我可以就如何使用 python-gstreamer (pygst) 在 gstreamer 管道中指定输出声卡提出建议吗?

在 linux 系统上,我在/etc/asound.conf 中提供了声卡的名称,并且使用“aplay -D cardname0”从命令行测试成功

我曾希望 gstreamer 是为我用 python 编写的软件提供音频输出的最佳方式,但我需要能够选择要用于输出的声卡。

我在创建管道时尝试过的是:

    self.player = gst.element_factory_make("playbin2", "player")
    fakesink = gst.element_factory_make("fakesink", "fakesink") 
    alsa_card0 = gst.element_factory_make("alsasink", "cardname0")
    self.player.set_property("video-sink", fakesink)
    self.player.set_property("audio-sink", alsa_card0)

不过我发现“cardname0”这个名字与声卡的属性无关,只是一个无意义的字符串。查看 pygst 文档,我找不到定义 alsasink 的方法,以便它使用 alsa 默认卡以外的东西。我找不到任何关于可以使用的其他类型音频接收器的文档。任何指导将不胜感激。

最佳答案

您将 alsasink 元素命名为 cardname0,这确实对接收器没有影响。 相反,您想设置 device接收器的属性到 cardname0

例如。

alsa_card0.set_property("device", "cardname0")

关于python - 使用 python-gstreamer 指定声卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16899977/

相关文章:

python - 在 Pandas 中处理日期 - 删除日期时间中看不见的字符并转换为字符串

c - ptrace 选项根本不起作用

C++/Linux : Undefined reference to typeinfo, 但虚拟方法似乎没问题

gstreamer - 我们可以将音频二进制数据直接写入 gstreamer 管道吗?

python - 如何在 tf.keras 自定义损失函数中触发 python 函数?

python - 符合 PEP8 的长 f 字符串拆分

python - pytest.ini 值未正确设置

c - 使用命令 "s"时 GDB 不会进入函数

plugins - 如何注册 Gstreamer 插件?

linux - 何时调用源元素的 set_caps ?