Hace falta activar el Componente "gb.sdl2.audio" y tener instalada en el sistema la libreria "libmpeg3.so.2.1.8".
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)
' Close the MPEG stream.
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, i As Integer
Dim s As Single
Dim tmp As Date
perc = "/ruta/del/archivo.mp3"
mp3 = mpeg3_open(perc, 0)
camp = mpeg3_audio_samples(mp3, 0)
freq = mpeg3_sample_rate(mp3, 0)
' Obtiene la duración del archivo mp3:
s = camp / freq
Print "Duración del archivo: "; Date(0, 0, 0, 0, 0, 0, s * 1000)
Music.Load(perc)
Music.Play
tmp = Now
Repeat
i = DateDiff(tmp, Now, gb.Second)
Write "\rTiempo transcurrido: " & Date(0, 0, 0, 0, 0, 0, i * 1000)
Until i >= s
' Cuando la ejecución termina, el programa libera la memoria anteriormente ocupada y se cierra:
mpeg3_close(mp3)
End
' 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)
' Close the MPEG stream.
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, i As Integer
Dim s As Single
Dim tmp As Date
perc = "/ruta/del/archivo.mp3"
mp3 = mpeg3_open(perc, 0)
camp = mpeg3_audio_samples(mp3, 0)
freq = mpeg3_sample_rate(mp3, 0)
' Obtiene la duración del archivo mp3:
s = camp / freq
Print "Duración del archivo: "; Date(0, 0, 0, 0, 0, 0, s * 1000)
Music.Load(perc)
Music.Play
tmp = Now
Repeat
i = DateDiff(tmp, Now, gb.Second)
Write "\rTiempo transcurrido: " & Date(0, 0, 0, 0, 0, 0, i * 1000)
Until i >= s
' Cuando la ejecución termina, el programa libera la memoria anteriormente ocupada y se cierra:
mpeg3_close(mp3)
End