Differenze tra le versioni di "Ottenere la durata di un file Midi con le funzioni esterne del API di VLC"
Da Gambas-it.org - Wikipedia.
Riga 52: | Riga 52: | ||
Until tm > 0 | Until tm > 0 | ||
− | Print "Durata: "; | + | Print "Durata: "; Time(0, 0, 0, tm) |
libvlc_media_release(md) | libvlc_media_release(md) |
Versione delle 17:54, 11 giu 2021
Per ottenere la durata di un file Midi con l'API di VLC, è possibile utilizzare la funzione esterna: "libvlc_media_get_duration( )".
E' necessario avere installata nel sistema e richiamare nel programma Gambas la libreria condivisa: "libvlc.so.5.6.0"
Mostriamo un esempio pratico:
Library "libvlc:5.6.0" Private Enum libvlc_media_parse_local = 0, libvlc_media_parse_network, libvlc_media_fetch_local, libvlc_media_fetch_network = 4, libvlc_media_do_interact = 8 ' libvlc_instance_t * libvlc_new (int argc, const char *const *argv) ' Create And initialize a libvlc instance. Private Extern libvlc_new(argc As Integer, argv As String[]) As Pointer ' libvlc_media_t * libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path) ' Create a media for a certain file path. Private Extern libvlc_media_new_path(p_instance As Pointer, path As String) As Pointer ' int libvlc_media_parse_with_options (libvlc_media_t *p_md, libvlc_media_parse_flag_t parse_flag, int timeout) ' Parse the media asynchronously with options. Private Extern libvlc_media_parse_with_options(p_md As Pointer, parse_flag As Integer, timeout As Integer) As Integer ' libvlc_time_t libvlc_media_get_duration(libvlc_media_t *p_md) ' Get duration (in ms) of media descriptor object item. Private Extern libvlc_media_get_duration(p_md As Pointer) As Long ' void libvlc_media_release (libvlc_media_t *p_md) ' Decrement the reference count of a media descriptor object. Private Extern libvlc_media_release(p_md As Pointer) ' libvlc_release (libvlc_instance_t * p_instance) ' Decrement the reference count of a libvlc instance, and destroy it if it reaches zero. Private Extern libvlc_release(p_instance As Pointer) Public Sub Main() Dim inst, md As Pointer Dim tm As Long inst = libvlc_new(0, Null) md = libvlc_media_new_path(inst, "/percorso/del/file.mid") libvlc_media_parse_with_options(md, libvlc_media_parse_local, 0) Repeat tm = libvlc_media_get_duration(md) Until tm > 0 Print "Durata: "; Time(0, 0, 0, tm) libvlc_media_release(md) libvlc_release(inst) End