2016-04-11 43 views
0

我有这些GST-发射参数做我想做的:的Gstreamer UDP源PCM回放

gst-launch-1.0.exe udpsrc port=22122 ! audio/x-raw,format=S16LE,rate=16000,channels=1 ! autoaudiosink 

但是,我不能将其转换成代码。我想下面:

GstElement *pipeline = gst_pipeline_new("audio-player"); 

GstBus *bus = gst_pipeline_get_bus(GST_PIPELINE(pipeline)); 
guint bus_watch_id = gst_bus_add_watch(bus, bus_call, m_gstMainLoop); 
gst_object_unref(bus); 

GstElement *source = gst_element_factory_make("udpsrc", "udpsrc0"); 
GstElement *sink = gst_element_factory_make("autoaudiosink", "autoaudiosink0"); 

g_object_set(G_OBJECT(source), "port", 7200, "buffer-size", 1000000, NULL); 
gst_bin_add_many(GST_BIN(pipeline), source, sink, NULL); 

GstCaps *caps = gst_caps_new_simple("audio/x-raw", 
            "format", G_TYPE_STRING, "S16LE", 
            "layout", G_TYPE_STRING, "INTERLEAVED", 
            "rate",  G_TYPE_INT,  16000, 
            "channels", G_TYPE_INT,  1, 
            NULL); 

gst_element_link_filtered(source, sink, caps); 
gst_caps_unref(caps); 

gst_element_set_state(pipeline, GST_STATE_PLAYING); 
g_main_loop_run(m_gstMainLoop); 

在点图他们看起来几乎一样,但不完全是,但我想不出什么我失踪。

回答

0

不知道为什么,但它工作,如果我离开了交错(这应该是小写,如果输入),我也错过了,我输入了错误的端口号(doh!)。

+0

至少你发现了这个:)你可能会考虑关闭这个问题,因为它不会帮助任何人..但这是你的考虑 - 也许只是关于交错的部分是有帮助的.. – nayana

+0

可能是一个好主意,但我无法弄清楚如何结束这个问题。只是将其标记为答案。 – Vanvid

+0

也许有关交错的信息可以用于某人...但在任何情况下,您通过点击浅灰色“关闭”其位于问题文本下的正确答案,在蓝色标记“gstreamer”下关闭该问题。旁边的选项“共享“和”编辑“.. – nayana