我想配置自动音频接收器

时间:2019-12-16 00:11:20

标签: gstreamer

许多简单的程序使用gstreamer来处理媒体文件。为此,他们将输出设备定义为“ autoaudiosink”。这对我不起作用,因为这会强制使用我未连接到计算机的HDMI声音输出。我尝试用alsasink device=hw:1,0代替autoaudiosink修补此类程序,但这产生了一个错误(该程序无法告诉我它是哪个错误)。我怀疑gstreamer库在其library-function-parameters中不喜欢空格。

我的新主意是从安装中删除hdmi驱动程序? 还是有其他方法可以防止autoaudiosink选择它?

使用gstreamer库表达上述对设备进行硬编码的想法的正确方法是什么?例如,在http://github.com/gkarsay/parlatype.git中,我的补丁说

--- parlatype-1.5.2/libparlatype/src/pt-player.c        2017-08-03 14:58:24.000000000 +0200
+++ parlatype-1.5.2.new/libparlatype/src/pt-player.c    2019-07-18 10:00:49.189372451 +0200
@@ -1472,7 +1472,7 @@
        player->priv->play = gst_element_factory_make ("playbin",       "play");
        scaletempo         = gst_element_factory_make ("scaletempo",    "tempo");
        capsfilter         = gst_element_factory_make ("capsfilter",    "audiofilter");
-       audiosink          = gst_element_factory_make ("autoaudiosink", "audiosink");
+       audiosink          = gst_element_factory_make ("alsasink device=hw:1,0", "audiosink");

        /* checks */
 #if GST_CHECK_VERSION(1,3,0)

在1.5.2版中,该程序无法创建播放器对象(而是在创建用于显示错误的消息框时崩溃)!

1 个答案:

答案 0 :(得分:0)

您使用g_object_set()来设置元素的属性。只需实例化元素:

audiosink          = gst_element_factory_make ("alsasink", "audiosink");

然后设置它的属性:

g_object_set(audiosink, "device", "hw:1,0", NULL);