请告诉我如何使用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")