Differenze tra le versioni di "La gestione dei file audio mediante le funzioni esterne del API di MikMod"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
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 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.2.0.6''
 
 
 
  
  
 
==Riproduzione audio mediante un'applicazione "''a riga di comando''"==
 
==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'':
 
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:2.0.6"
+
  Library "libmikmod:3.3.0"
 
   
 
   
 
  <FONT Color=gray>' ''void MikMod_RegisterAllDrivers(void)''
 
  <FONT Color=gray>' ''void MikMod_RegisterAllDrivers(void)''
Riga 57: Riga 55:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
 
   Dim md As Pointer
 
   Dim md As Pointer
Riga 63: Riga 61:
 
    
 
    
 
  <FONT Color=gray>' ''Registra tutti i driver necessari:''</font>
 
  <FONT Color=gray>' ''Registra tutti i driver necessari:''</font>
    MikMod_RegisterAllDrivers()
+
  MikMod_RegisterAllDrivers()
 
      
 
      
 
  <FONT Color=gray>' ''Registra tutti i loader di modulo:''</font>
 
  <FONT Color=gray>' ''Registra tutti i loader di modulo:''</font>
    MikMod_RegisterAllLoaders()
+
  MikMod_RegisterAllLoaders()
 
      
 
      
 
  <FONT Color=gray>' ''Inizializza la libreria:''</font>
 
  <FONT Color=gray>' ''Inizializza la libreria:''</font>
    err = MikMod_Init(Null)
+
  err = MikMod_Init(Null)
    If err Then Error.Raise("Impossibile inizializzare la libreria MikMod: " & MikMod_strerror(MikMod_errno))
+
  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)
+
  md = Player_Load("<FONT Color=darkgreen>''/percorso/del/file/audio''</font>", 64, False)
    If IsNull(md) 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))
 
      
 
      
 
  <FONT Color=gray>' ''Avvia il modulo sonoro:''</font>
 
  <FONT Color=gray>' ''Avvia il modulo sonoro:''</font>
    Player_Start(md)
+
  Player_Start(md)
 
      
 
      
    While Player_Active()
+
  While Player_Active()
      MikMod_Update()
+
    MikMod_Update()
    Wend
+
  Wend
 
      
 
      
    Player_Stop()
+
  Player_Stop()
    Player_Free(md)
+
  Player_Free(md)
 
      
 
      
 
  <FONT Color=gray>' ''Chiude la libreria:''</font>
 
  <FONT Color=gray>' ''Chiude la libreria:''</font>
    MikMod_Exit()
+
  MikMod_Exit()
 
    
 
    
  '''End'''
+
  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


Riferimenti