Sapere con le funzioni esterne del API di Rhythmbox se un file contiene dati audio e/o video
Da Gambas-it.org - Wikipedia.
Con alcune funzioni esterne del API di Rhythmbox è possibile sapere se un file contiene dati audio e/o video.
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "librhythmbox-core.so.10.0.0 ".
Mostriamo di seguito un esempio pratico:
Library "librhythmbox-core:10.0.0" ' RBMetaData *rb_metadata_new (void) ' Creates a new metadata backend instance. Private Extern rb_metadata_new() As Pointer ' void rb_metadata_load (RBMetaData *md, const char *uri, GError **error) ' Reads metadata information from the specified URI. Private Extern rb_metadata_load(md As Pointer, uri As String, gerror As Pointer) ' gboolean rb_metadata_has_audio (RBMetaData *md) ' Retrieves the value of a metadata field extracted from the target URI. Private Extern rb_metadata_has_audio(md As Pointer) As Boolean ' gboolean rb_metadata_has_video (RBMetaData *md) ' Retrieves the value of a metadata field extracted from the target URI. Private Extern rb_metadata_has_video(md As Pointer) As Boolean ' void gst_object_unref(gpointer object) ' Decrements the reference count on object. Private Extern gst_object_unref(gobject As Pointer) Public Sub Main() Dim uri as String Dim met As Pointer Dim bo as Boolean uri = "file://" met = rb_metadata_new() If met == 0 Then Error.Raise("Errore !") rb_metadata_load(met, uri & "/percorso/del/file", 0) bo = rb_metadata_has_audio(met) Print bo bo = rb_metadata_has_video(met) Print bo gst_object_unref(met) End