La gestione dei file MIDI mediante le funzioni esterne del API di VLC

Da Gambas-it.org - Wikipedia.
Versione del 20 set 2013 alle 09:13 di Vuott (Discussione | contributi) (Creata pagina con 'La libreria '''''LibVLC''''' consente di eseguire anche file MIDI, purché si abbiano installate nel sistema anche le risorse dei plugin ''FluidSynth'' per VLC: ''vlc-plugin-f...')

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

La libreria LibVLC consente di eseguire anche file MIDI, purché si abbiano installate nel sistema anche le risorse dei plugin FluidSynth per VLC: vlc-plugin-fluidsynth.


E' possibile eseguire dati Midi anche direttamente da internet.


Per creare un'applicazione con la presente risorsa, si dovrà utilizzare l'attuale libreria libvlc.so.5.3.2.


Mostriamo di seguito un breve codice esemplificativo capace di eseguire un file Midi.

Private inst As Pointer
Private mp As Pointer


Library "libvlc:5.3.2"

' libvlc_instance_t * libvlc_new (int argc, const char *const *argv)
' Create And initialize a libvlc instance.
Private Extern libvlc_new(argc As Integer, argv As String) As Pointer

' libvlc_media_t * libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path)
' Create a media for a certain Midi file path.
Private Extern libvlc_media_new_path(p_instance As Pointer, path As String) As Pointer

' libvlc_media_player_t * libvlc_media_player_new_from_media (libvlc_media_t *p_md)
' Create a Media Player object from a Media.
Private Extern libvlc_media_player_new_from_media(p_md As Pointer) As Pointer

' int libvlc_media_player_play (libvlc_media_player_t * p_mi)
' Play the Midi file.
Private Extern libvlc_media_player_play(p_mi As Pointer) As Integer

' void libvlc_media_player_stop (libvlc_media_player_t * p_mi)
' Stop the Midi file
Private Extern libvlc_media_player_stop(p_mi As Pointer)

' void libvlc_media_player_release (libvlc_media_player_t * p_mi)
' Release a media_player after use Decrement the reference count of a media player object.
Private Extern libvlc_media_player_release(p_mi As Pointer)

' libvlc_release (libvlc_instance_t * p_instance)
' Decrement the reference count of a libvlc instance, and destroy it if it reaches zero.
Private Extern libvlc_release(p_instance As Pointer)


Public Sub Button1_Click()

 Dim m As Pointer
 
   
' Inizializza la libreria VLC:
   inst = libvlc_new(0, Null)
   
' Crea un nuovo oggetto multimedia:
   m = libvlc_media_new_path(inst, "/percorso/del/file/Midi")
   
' Crea un media player:
   mp = libvlc_media_player_new_from_media(m)
   
 ' Avvia l'esecuzione del file Midi da parte del media player:
   libvlc_media_player_play(mp)

End


Public Sub Button2_Click()

' Arresta l'esecuzione del file Midi:
   libvlc_media_player_stop(mp)

' Rilascia e chiude il media player:
   libvlc_media_player_release(mp)
    
' Chiude la libreria VLC:
   libvlc_release(inst)

End



Riferimenti