2

我能否就如何使用 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 默认卡以外的东西。我找不到任何关于可以使用的其他类型音频接收器的文档。任何指导将不胜感激。

4

1 回答 1

2

您正在命名一个alsasinkelement cardname0,这确实对水槽没有影响。相反,您希望将device接收器的属性设置为cardname0.

例如。

alsa_card0.set_property("device", "cardname0")
于 2013-06-03T15:17:13.280 回答