« il: 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":
#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 »
Registrato
« 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. »