Autore Topic: Eseguire file audio, Midi e video con le risorse della libreria "GStreamer-1.0"  (Letto 672 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.262
  • Ne mors quidem nos iunget
    • Mostra profilo
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`


« Ultima modifica: 12 Dicembre 2023, 01:07:39 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »