Gambas-it

Programmazione => Altri linguaggi => Topic aperto da: vuott - 11 Agosto 2015, 10:20:33

Titolo: Eseguire file audio, Midi e video con le risorse della libreria "GStreamer-1.0"
Inserito da: vuott - 11 Agosto 2015, 10:20:33
Riporto di seguito un codice essenziale in linguaggio C per l'esecuzione dei file audio, Midi e video con le funzioni della libreria "GStreamer-1.0":

Codice: c [Seleziona]
#include <gstreamer-1.0/gst/gst.h>


int main(int argc, char *argv[]) {

   GstElement *pipeline;
   gint64 durata, posizione;


/* Inizializa GStreamer */
   gst_init (&argc, &argv);

   pipeline = gst_element_factory_make ("playbin", NULL);

/* Imposta la URI per l'esecuzione */
   if (argc != 2) {
      g_print ("Uso: nome_applicazione <file_media>\n");  /* Il nome del file non deve avere spazi */
      return -1;
   };
   g_object_set (pipeline, "uri", g_filename_to_uri(argv[1], NULL, NULL), NULL);

/* Avvia l'esecuzione del file mediale */
   gst_element_set_state(pipeline, GST_STATE_PLAYING);

   while (durata < 0.01) {
     gst_element_query_duration(pipeline, GST_FORMAT_TIME, &durata);
   }
   g_print ("Durata: %"GST_TIME_FORMAT, GST_TIME_ARGS (durata));
   g_print ("\n");
   while (durata != posizione) {
      gst_element_query_position(pipeline, GST_FORMAT_TIME, &posizione);
      g_print ("\rPosizione: %"GST_TIME_FORMAT, GST_TIME_ARGS (posizione));
   };


/*Va in chiusura */
   g_print ("\n");
   gst_element_set_state (pipeline, GST_STATE_NULL);
   gst_object_unref (pipeline);
   return 0;

}


Il codice va compilato in Terminale come segue:
~ $ gcc -o /percorso/nome_programma /percorso/nome_programma.c `pkg-config --cflags --libs gstreamer-1.0`