Differenze tra le versioni di "Estrarre informazioni da un file MP3 con le funzioni esterne del API di libmpeg3"
Da Gambas-it.org - Wikipedia.
(Creata pagina con "Con alcune risorse della libreria esterna "''libmpeg3''" è possibile ottenere alcune informazioni strettamente relative a un file mp3. E' necessario avere installata nel si...") |
|||
Riga 58: | Riga 58: | ||
Print "Formato audio: "; String@(mpeg3_audio_format(mp3, 0)) | Print "Formato audio: "; String@(mpeg3_audio_format(mp3, 0)) | ||
cmp = mpeg3_audio_samples(mp3, 0) | cmp = mpeg3_audio_samples(mp3, 0) | ||
− | Print "Campioni audio: "; cmp | + | Print "Campioni audio: "; cmp; " byte" |
Print "Durata: "; CStr(Date(0, 0, 0, 0, 0, 0, (cmp / freq) * 1000)) | Print "Durata: "; CStr(Date(0, 0, 0, 0, 0, 0, (cmp / freq) * 1000)) | ||
Versione delle 13:08, 23 lug 2018
Con alcune risorse della libreria esterna "libmpeg3" è possibile ottenere alcune informazioni strettamente relative a un file mp3.
E' necessario avere installata nel sistema operativo e richiamare nel programma Gambas la libreria dinamica condivisa: libmpeg3.so
Mostriamo un semplice esempio:
Library "libmpeg3" ' int mpeg3_check_sig(char *path) ' Check for file compatibility. Private Extern mpeg3_check_sig(path As String) As Integer ' mpeg3_t* mpeg3_open(char *path, int *error_return) ' Open the MPEG stream. Private Extern mpeg3_open(path As String, error_return As Pointer) As Pointer ' int64_t mpeg3_get_bytes(mpeg3_t *file) ' Total bytes. Private Extern mpeg3_get_bytes(mpeg3file As Pointer) As Long ' int mpeg3_audio_channels(mpeg3_t *file, int stream) Private Extern mpeg3_audio_channels(mpeg3file As Pointer, _stream As Integer) As Integer ' int mpeg3_sample_rate(mpeg3_t *file, int stream) Private Extern mpeg3_sample_rate(mpeg3file As Pointer, _stream As Integer) As Integer ' char* mpeg3_audio_format(mpeg3_t *file, int stream) Private Extern mpeg3_audio_format(mpeg3file As Pointer, _stream As Integer) As Pointer ' long mpeg3_audio_samples(mpeg3_t *file, int stream) Private Extern mpeg3_audio_samples(mpeg3file As Pointer, _stream As Integer) As Long ' int mpeg3_close(mpeg3_t *file) Private Extern mpeg3_close(mpeg3file As Pointer) As Integer Public Sub Main() Dim perc As String Dim i, freq As Integer Dim cmp As Long Dim mp3 As Pointer perc = "/percorso/del/file.mp3" i = mpeg3_check_sig(perc) If i = 0 Then Error.Raise("Tipo file incompatibile !") mp3 = mpeg3_open(perc, 0) i = mpeg3_total_astreams(mp3) Print "File audio: "; perc Print "Dimensione: "; mpeg3_get_bytes(mp3); " byte" Print "Numero canali: "; mpeg3_audio_channels(mp3, 0) freq = mpeg3_sample_rate(mp3, 0) Print "Frequenza: "; freq; " hertz" Print "Formato audio: "; String@(mpeg3_audio_format(mp3, 0)) cmp = mpeg3_audio_samples(mp3, 0) Print "Campioni audio: "; cmp; " byte" Print "Durata: "; CStr(Date(0, 0, 0, 0, 0, 0, (cmp / freq) * 1000)) mpeg3_close(mp3) End