- 创建pipeline
pipeline = gst_pipeline_new("audio-player");
- 创建filesrc类型元素并命名为file-source;
GstElement *source = gst_element_factory_make("filesrc", "file-source");
- 通过元素名file-source获取元素对应的指针;
GstElement *source = gst_bin_get_by_name(GST_BIN(pipeline), "file-source");
- 为对应元素指针添加属性;
g_object_set(source, "location", "/path/to/your/audio/file.mp3", NULL);
- 链接元素;
sinkpad = gst_element_get_request_pad(streammux, pad_name_sink);
srcpad = gst_element_get_static_pad(decoder, pad_name_src);
gst_pad_link(srcpad, sinkpad);
- 判断元素之间是否连接并产生链接;
gst_element_link(source, sink) != TRUE
gst_element_link_many(1,2,3,4,5);
- 设置管道状态为播放;
ret = gst_element_set_state(pipeline, GST_STATE_PLAYING);
- 等待播放结束或发生错误
bus = gst_element_get_bus(pipeline);
msg = gst_bus_timed_pop_filtered(bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
- 释放
gst_message_unref(msg);
gst_object_unref(bus);
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(pipeline);