C 如何重播流?

C 如何重播流?,c,gstreamer,C,Gstreamer,我想玩网络广播。当我关闭Internet收音机上的流时,带有gstreamer的节目显示错误,如果我打开连接的Internet收音机,带有gstreamer的节目将不播放。如何重播流 这是一条cb_信息 static void cb_message ( GstBus *bus, GstMessage *msg, gpointer data ) { switch ( GST_MESSAGE_TYPE ( msg ) ) { case GST_MESSAGE_ERROR: {

我想玩网络广播。当我关闭Internet收音机上的流时,带有gstreamer的节目显示错误,如果我打开连接的Internet收音机,带有gstreamer的节目将不播放。如何重播流

这是一条cb_信息

static void cb_message ( GstBus *bus, GstMessage *msg, gpointer data ) {
    switch ( GST_MESSAGE_TYPE ( msg ) ) {
        case GST_MESSAGE_ERROR: {
                        printf ( "type error\n" );
                        GError *error = NULL;
                        char *debug;
                        gst_message_parse_error ( msg, &error, &debug );
                        g_print ( "error: from %s %s\n", GST_OBJECT_NAME ( msg->src ), error->message );
                        g_error_free ( error );
                        g_free ( debug );

                    }
                    break;
        case GST_MESSAGE_EOS: {
                          printf ( "eos\n" );
                          gst_element_set_state ( gst.pipeline, GST_STATE_READY );
                        g_timeout_add_seconds ( 1, func_handle, NULL );
                      }
                      break;
        case GST_MESSAGE_BUFFERING: {
                            printf ( "buffering\n" );
                            int percent = 0;
                            if ( gst.is_live ) break;
                            gst_message_parse_buffering ( msg, &percent );
                            if ( percent < 100 ) {
                                gst_element_set_state ( gst.pipeline, GST_STATE_PAUSED );
                            } else {
                                gst_element_set_state ( gst.pipeline, GST_STATE_PLAYING );
                            }
                        }
                        break;
        case GST_MESSAGE_CLOCK_LOST: {
                             printf ( "clock lost\n" );
                            gst_element_set_state ( gst.pipeline, GST_STATE_PAUSED );
                            gst_element_set_state ( gst.pipeline, GST_STATE_PLAYING );
                         }
                         break;
    }
}
eos
2
live async
type error
error: from souphttpsrc0 File Not Found
type error
error: from souphttpsrc0 Internal data stream error.
type error
error: from typefind Stream doesn't contain enough data.
2
live async
2
live async