2013-06-03 83 views
1

請問如何使用python-gstreamer(pygst)在gstreamer管道中指定輸出聲卡的建議。用python-gstreamer指定聲卡

在我已經在/etc/asound.conf和測試命令行的聲卡提供名稱的Linux系統成功用「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默認卡以外的其他方法。我找不到任何可以使用的其他類型音頻接收器的文檔。任何指導將不勝感激。

回答

2

您正在命名alsasink元素cardname0,這確實對接收器沒有影響。 相反,您要將接收器的device屬性設置爲cardname0

例如。

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

謝謝你的答案,這看起來像我所需要的。在我回到測試計算機之前,我將無法測試它幾天。 – corky

+0

查看'gst-inspect '來獲取屬性列表。你可以使用'gst_property_probe'來獲取聲音設備列表(不能給你任何進一步的細節,我只用它在C代碼中,不知道它是如何在.py中工作的) – mreithub

+0

測試工作正常,謝謝Hasturkun – corky