_loop = g_main_loop_new(NULL, FALSE);
_pipeline = gst_element_factory_make("playbin", "player");
g_object_set(G_OBJECT(_pipeline), "uri", "localhost/exampleFile.mp3", NULL);
_bus = gst_pipeline_get_bus(GST_PIPELINE(_pipeline));
gst_bus_add_watch(_bus, busCall, NULL);
gst_object_unref(_bus);
gst_element_set_state(GST_ELEMENT(_pipeline), GST_STATE_PLAYING);
g_main_loop_run(_loop);
gst_element_set_state(GST_ELEMENT(_pipeline), GST_STATE_NULL);
gst_object_unref(GST_OBJECT(_pipeline));
我可以通过此代码播放任何文件,但我需要将当前正在播放的文件保存到我的硬盘中。 我找不到一个允许我这样做的例子。有一个带音频接收器和视频接收器的变体,但我不知道如何将它们联合起来。很高兴看到一个允许它实现的工作示例。
答案 0 :(得分:0)
您可能正在寻找filesink元素。
g_object_set(G_OBJECT(_your_filesink_element), "location", "/home/yourlocation/file3.mp3", NULL);
这意味着直接将其与来源4相关联,通过单独的pipeline
或使用queue
正确保存。