Я использую библиотеку GST для воспроизведения нескольких аудиофайлов, и у меня проблема:
Ошибка: внутренняя ошибка потока данных
Это мой код (без другого демультиплексора и приемника инициализации):
GstElement *elm1, *elm2;
elm1 = gst_element_factory_make ("filesrc", "file1.ogg");
elm2 = gst_element_factory_make ("filesrc", "file2.ogg");
g_object_set (G_OBJECT (elm1), "location", "file1.ogg", NULL);
g_object_set (G_OBJECT (elm2), "location", "file2.ogg", NULL);
GstBus *bus;
bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
bus_watch_id = gst_bus_add_watch (bus, bus_call, loop);
gst_object_unref (bus);
gst_bin_add_many (GST_BIN (pipeline), elm1, elm2, demuxer, sink, NULL);
gst_element_link_many (elm1, elm2, demuxer);
g_signal_connect (demuxer, "pad-added", G_CALLBACK (on_pad_added), sink);
gst_element_set_state (pipeline, GST_STATE_PLAYING);
Я сделал что-то не так?
вам нужно прослушать EOS для файла-1, а затем изменить filesrc на файл-2.
следующий ответ должен помочь вам —
‘GStreamer динамически изменяет местоположение файла конвейера — Нет звука‘
Других решений пока нет …