Calcolare la durata di un file MP3 mediante la libreria libmpeg3

Da Gambas-it.org - Wikipedia.

Questa modalità ottiene la durata del file MP3 dividendo il numero dei Campioni audio contenuti dal file mp3 per la frequenza di campionamento:

campioni_audio / frequenza = durata

Mostriamo un esempio con alcune risorse del API di "libmpeg3": [nota 1]

Library "libmpeg3:2.1.8"

' 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
 
' long mpeg3_audio_samples(mpeg3_t *file, int stream)
Private Extern mpeg3_audio_samples(mpeg3file As Pointer, _stream As Integer) As Long

' int mpeg3_sample_rate(mpeg3_t *file, int stream)
Private Extern mpeg3_sample_rate(mpeg3file As Pointer, _stream As Integer) As Integer

' int mpeg3_close(mpeg3_t *file)
Private Extern mpeg3_close(mpeg3file As Pointer) As Integer


Public Sub Main()
 
 Dim mp3 As Pointer
 Dim perc As String
 Dim camp as long
 Dim freq As Integer
 
 perc = "/percorso/del/file.mp3"
 
 mp3 = mpeg3_open(perc, 0)
 If mp3 == 0 Then Error.Raise("Errore !")
 
 camp = mpeg3_audio_samples(mp3, 0)
 
 freq = mpeg3_sample_rate(mp3, 0)
 
 Print "Durata: "; camp / freq; " secondi\e[31m", Time(0, 0, 0, (camp / freq) * 1000)
 
 mpeg3_close(mp3)
 
End


Note

[1] Vedere anche le seguenti pagine: