Differenze tra le versioni di "La gestione dei file audio mediante le funzioni esterne del API di MikMod"
Da Gambas-it.org - Wikipedia.
Riga 3: | Riga 3: | ||
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 | + | Per poter fruire delle risorse di ''MikMod'' in Gambas è necessario avere installata e richiamare la libreria condivisa: "''libmikmod.so.3.3.0'' ". |
Riga 55: | Riga 55: | ||
− | + | Public Sub Main() | |
Dim md As Pointer | Dim md As Pointer | ||
Riga 71: | Riga 71: | ||
<FONT Color=gray>' ''Carica il modulo sonoro:''</font> | <FONT Color=gray>' ''Carica il modulo sonoro:''</font> | ||
− | md = Player_Load("<FONT Color= | + | md = Player_Load("<FONT Color=darkgreen>''/percorso/del/file/audio''</font>", 64, False) |
If md == 0 Then Error.Raise("Impossibile caricare il modulo sonoro: " & MikMod_strerror(MikMod_errno)) | If md == 0 Then Error.Raise("Impossibile caricare il modulo sonoro: " & MikMod_strerror(MikMod_errno)) | ||
Riga 87: | Riga 87: | ||
MikMod_Exit() | MikMod_Exit() | ||
− | + | End | |
Versione attuale delle 17:02, 13 gen 2024
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 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