Differenze tra le versioni di "La gestione dei file audio mediante le funzioni esterne del API di MikMod"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
La riproduzione audio avviene un driver audio. ''MikMod'' fornisce diversi driver audio e consente di aggiungere e selezionare un proprio driver audio. | La riproduzione audio avviene un driver audio. ''MikMod'' fornisce diversi driver audio e consente di aggiungere e selezionare un proprio driver audio. | ||
− | |||
Per poter fruire delle risorse di ''MikMod'' in Gambas è necessario avere installata e richiamare la libreria dinamica condivisa: ''libmikmod.so.3.3.0'' | Per poter fruire delle risorse di ''MikMod'' in Gambas è necessario avere installata e richiamare la libreria dinamica condivisa: ''libmikmod.so.3.3.0'' | ||
− | |||
Riga 63: | Riga 61: | ||
<FONT Color=gray>' ''Registra tutti i driver necessari:''</font> | <FONT Color=gray>' ''Registra tutti i driver necessari:''</font> | ||
− | + | MikMod_RegisterAllDrivers() | |
<FONT Color=gray>' ''Registra tutti i loader di modulo:''</font> | <FONT Color=gray>' ''Registra tutti i loader di modulo:''</font> | ||
− | + | MikMod_RegisterAllLoaders() | |
<FONT Color=gray>' ''Inizializza la libreria:''</font> | <FONT Color=gray>' ''Inizializza la libreria:''</font> | ||
− | + | err = MikMod_Init(Null) | |
− | + | If err Then Error.Raise("Impossibile inizializzare la libreria MikMod: " & MikMod_strerror(MikMod_errno)) | |
<FONT Color=gray>' ''Carica il modulo sonoro:''</font> | <FONT Color=gray>' ''Carica il modulo sonoro:''</font> | ||
− | + | md = Player_Load("<FONT Color=gray>''/percorso/del/file/audio''</font>", 64, False) | |
− | + | If md == 0 Then Error.Raise("Impossibile caricare il modulo sonoro: " & MikMod_strerror(MikMod_errno)) | |
<FONT Color=gray>' ''Avvia il modulo sonoro:''</font> | <FONT Color=gray>' ''Avvia il modulo sonoro:''</font> | ||
− | + | Player_Start(md) | |
− | + | While Player_Active() | |
− | + | MikMod_Update() | |
− | + | Wend | |
− | + | Player_Stop() | |
− | + | Player_Free(md) | |
<FONT Color=gray>' ''Chiude la libreria:''</font> | <FONT Color=gray>' ''Chiude la libreria:''</font> | ||
− | + | MikMod_Exit() | |
'''End''' | '''End''' |
Versione delle 16:50, 22 giu 2021
Mikmod è una libreria che supporta i seguenti formati audio: mod, s3m, it e xm.
La riproduzione audio avviene un driver audio. MikMod fornisce diversi driver audio e consente di aggiungere e selezionare un proprio driver audio.
Per poter fruire delle risorse di MikMod in Gambas è necessario avere installata e richiamare la libreria dinamica condivisa: libmikmod.so.3.3.0
Riproduzione audio mediante un'applicazione "a riga di comando"
Mostriamo di seguito un esempio per eseguire un file audio, tra quelli supportati dalla libreria MikMod, mediante un'applicazione a riga di comando:
Library "libmikmod:3.3.0" ' void MikMod_RegisterAllDrivers(void) ' Registers all the available drivers. Private Extern MikMod_RegisterAllDrivers() ' void MikMod_RegisterAllLoaders(void) ' Registers all the available module loaders. Private Extern MikMod_RegisterAllLoaders() ' int MikMod_Init(const CHAR *parameters) ' Performs the library initialization. Private Extern MikMod_Init(parameters As String) As Integer ' MODULE* Player_Load(const CHAR* filename, int maxchan, BOOL curious) ' Loads a music module. Private Extern Player_Load(filename As String, maxchan As Integer, curious As Boolean) As Pointer ' void Player_Start(MODULE* module) ' Starts the specified module playback. Private Extern Player_Start(module As Pointer) ' BOOL Player_Active(void) ' Returns whether the module player is active or not. Private Extern Player_Active() As Boolean ' void MikMod_Update(void) ' Updates the sound. Private Extern MikMod_Update() ' void Player_Stop(void) ' Stops the currently playing module. Private Extern Player_Stop() ' void Player_Free(MODULE* module) ' Stops the module if it is playing and unloads it from memory. Private Extern Player_Free(module As Pointer) ' const char* MikMod_strerror(int errnum) ' Associates a descriptive message to an error code. Private Extern MikMod_strerror(errnum As Integer) As String ' void MikMod_Exit(void) ' Deinitializes the sound hardware and frees all the memory and resources used by MikMod. Private Extern MikMod_Exit() Public Sub Main() Dim md As Pointer Dim err, MikMod_errno As Integer ' Registra tutti i driver necessari: MikMod_RegisterAllDrivers() ' Registra tutti i loader di modulo: MikMod_RegisterAllLoaders() ' Inizializza la libreria: err = MikMod_Init(Null) If err Then Error.Raise("Impossibile inizializzare la libreria MikMod: " & MikMod_strerror(MikMod_errno)) ' Carica il modulo sonoro: md = Player_Load("/percorso/del/file/audio", 64, False) If md == 0 Then Error.Raise("Impossibile caricare il modulo sonoro: " & MikMod_strerror(MikMod_errno)) ' Avvia il modulo sonoro: Player_Start(md) While Player_Active() MikMod_Update() Wend Player_Stop() Player_Free(md) ' Chiude la libreria: MikMod_Exit() End