Differenze tra le versioni di "Eseguire un file mp3 usando le risorse del API di Mpeg3 e della Classe "Music" del Componente gb.sdl2.audio"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Nel caso di uso della Classe "''Music'' " del Componente ''gb.sdl2.audio'' non è possibile ottenere il valore della durata del file audio prescelto da eseguire. <BR>Il valor...")
 
Riga 1: Riga 1:
 
Nel caso di uso della Classe "''Music'' " del Componente ''gb.sdl2.audio'' non è possibile ottenere il valore della durata del file audio prescelto da eseguire.  
 
Nel caso di uso della Classe "''Music'' " del Componente ''gb.sdl2.audio'' non è possibile ottenere il valore della durata del file audio prescelto da eseguire.  
 
<BR>Il valore della durata è assolutamente necessario per attivare la funzione "''Wait'' " o un ciclo di attesa per far eseguire il file audio.
 
<BR>Il valore della durata è assolutamente necessario per attivare la funzione "''Wait'' " o un ciclo di attesa per far eseguire il file audio.
<BR>In questa circostanza la libreria "''libmpeg3'' dunque consente di ricavare da un file audio MP3 la frequenza e il numero di campioni audio presenti. Questi due valori consentiranno di ottenere la durata del file audio da eseguire.
+
<BR>In questa circostanza la libreria esterna "''libmpeg3'' può essere richiamata ed utilizzata proprio per ricavare da un file audio MP3 la frequenza e il numero di campioni audio presenti. Questi due valori consentiranno di ottenere la durata del file audio da eseguire.
  
 
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libmpeg3.so.2.1.8''"
 
E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "''libmpeg3.so.2.1.8''"

Versione delle 17:57, 28 nov 2019

Nel caso di uso della Classe "Music " del Componente gb.sdl2.audio non è possibile ottenere il valore della durata del file audio prescelto da eseguire.
Il valore della durata è assolutamente necessario per attivare la funzione "Wait " o un ciclo di attesa per far eseguire il file audio.
In questa circostanza la libreria esterna "libmpeg3 può essere richiamata ed utilizzata proprio per ricavare da un file audio MP3 la frequenza e il numero di campioni audio presenti. Questi due valori consentiranno di ottenere la durata del file audio da eseguire.

E' necessario avere installata nel sistema e richiamare in Gambas la libreria condivisa: "libmpeg3.so.2.1.8"


Di seguito un esempio pratico per eseguire un file audio di formato Mp3:

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 = "/percorso/del/file.mp3"
  
 mp3 = mpeg3_open(perc, 0)
 
 camp = mpeg3_audio_samples(mp3, 0)
 
 s = camp / Sound.Frequency
 
 Print "Durata: "; Date(0, 0, 0, 0, 0, 0, s * 1000)
     
 Music.Load(perc)
 Music.Play
 
 tmp = Now
 
 Repeat
   i = DateDiff(tmp, Now, gb.Second)
   Write "\rTempo trascorso: " & Date(0, 0, 0, 0, 0, 0, i * 1000)
 Until i >= s
 
 mpeg3_close(mp3)
 
End