Differenze tra le versioni di "Conoscere la durata di un file Midi mediante le funzioni esterne del API di Libsmf"
Da Gambas-it.org - Wikipedia.
Riga 14: | Riga 14: | ||
' ''Length of SMF, in seconds.''</font> | ' ''Length of SMF, in seconds.''</font> | ||
Private Extern smf_get_length_seconds(smf_t As Pointer) As Float | Private Extern smf_get_length_seconds(smf_t As Pointer) As Float | ||
+ | |||
+ | <FONT Color=gray>' ''void smf_delete (smf_t *smf)'' | ||
+ | ' ''Frees smf and all it's descendant structures.''</font> | ||
+ | Private Extern smf_delete(smf As Smf_struct) | ||
Riga 25: | Riga 29: | ||
durata = smf_get_length_seconds(smf) | durata = smf_get_length_seconds(smf) | ||
+ | smf_delete(smf) | ||
+ | |||
Print "Durata del file Midi: "; Date(0, 0, 0, 0, 0, 0, durata * 1000) | Print "Durata del file Midi: "; Date(0, 0, 0, 0, 0, 0, durata * 1000) | ||
Versione delle 03:11, 1 giu 2016
La libreria Libsmf, ideata per la gestione degli standard Midi File, consente, fra l'altro, di conoscere la durata in secondi di un file Midi.
E' necessario aver installata e richiamare la libreria condivisa: "libsmf:0.0.0"
Mostriamo un semplice esempio:
Library "libsmf:0.0.0" ' smf_t* smf_load (const char * file_name) ' Loads SMF file. Private Extern smf_load(file_name As String) As Pointer ' double smf_get_length_seconds (const smf_t * smf) ' Length of SMF, in seconds. Private Extern smf_get_length_seconds(smf_t As Pointer) As Float ' void smf_delete (smf_t *smf) ' Frees smf and all it's descendant structures. Private Extern smf_delete(smf As Smf_struct) Public Sub Main() Dim smf As Pointer Dim durata As Float smf = smf_load("/percorso/del/file.mid") durata = smf_get_length_seconds(smf) smf_delete(smf) Print "Durata del file Midi: "; Date(0, 0, 0, 0, 0, 0, durata * 1000) End