|
|
(21 versioni intermedie di uno stesso utente non sono mostrate) |
Riga 1: |
Riga 1: |
− | La libreria '''''LibVLC''''' consente di eseguire anche file MIDI, purché si abbiano installate nel sistema anche le risorse dei plugin di ''FluidSynth'' per VLC: ''vlc-plugin-fluidsynth'', nonché ovviamente lo stesso ''FluidSynth''.
| + | * [[Eseguire un file Midi mediante le funzioni esterne del API di VLC]] |
| | | |
| + | * [[Ottenere la durata di un file Midi con le funzioni esterne del API di VLC]] |
| | | |
− | E' possibile eseguire dati Midi anche direttamente da internet.
| + | * [[Ottenere un file audio da un file Midi con le funzioni esterne del API di VLC]] |
− | | |
− | | |
− | Per creare un'applicazione con la presente risorsa, si dovrà utilizzare l'attuale libreria ''libvlc.so.5.4.0''.
| |
− | | |
− | | |
− | ===Esempio con applicazione grafica===
| |
− | '''Private''' inst As Pointer
| |
− | '''Private''' mp As Pointer
| |
− |
| |
− |
| |
− | Library "libvlc:5.4.0"
| |
− |
| |
− | <FONT color=gray>' ''libvlc_instance_t * libvlc_new (int argc, const char *const *argv)''
| |
− | ' ''Create And initialize a libvlc instance.''</font>
| |
− | '''Private''' Extern libvlc_new(argc As Integer, argv As String) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''libvlc_media_t * libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path)''
| |
− | ' ''Create a media for a certain Midi file path.''</font>
| |
− | '''Private''' Extern libvlc_media_new_path(p_instance As Pointer, path As String) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''libvlc_media_player_t * libvlc_media_player_new_from_media (libvlc_media_t *p_md)''
| |
− | ' ''Create a Media Player object from a Media.''</font>
| |
− | '''Private''' Extern libvlc_media_player_new_from_media(p_md As Pointer) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''int libvlc_media_player_play (libvlc_media_player_t * p_mi)''
| |
− | ' ''Play the Midi file.''</font>
| |
− | '''Private''' Extern libvlc_media_player_play(p_mi As Pointer) As Integer
| |
− |
| |
− | <FONT color=gray>' ''void libvlc_media_player_stop (libvlc_media_player_t * p_mi)''
| |
− | ' ''Stop the Midi file''</font>
| |
− | '''Private''' Extern libvlc_media_player_stop(p_mi As Pointer)
| |
− |
| |
− | <FONT color=gray>' ''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.''</font>
| |
− | '''Private''' Extern libvlc_media_player_release(p_mi As Pointer)
| |
− |
| |
− | <FONT color=gray>' ''libvlc_release (libvlc_instance_t * p_instance)''
| |
− | ' ''Decrement the reference count of a libvlc instance, and destroy it if it reaches zero.''</font>
| |
− | '''Private''' Extern libvlc_release(p_instance As Pointer)
| |
− |
| |
− |
| |
− | '''Public''' Sub Button1_Click()
| |
− |
| |
− | Dim m As Pointer
| |
− |
| |
− |
| |
− | <FONT color=gray>' ''Inizializza la libreria VLC:''</font>
| |
− | inst = libvlc_new(0, Null)
| |
− |
| |
− | <FONT color=gray>' ''Crea un nuovo oggetto multimedia:''</font>
| |
− | m = libvlc_media_new_path(inst, "''/percorso/del/file/Midi''")
| |
− |
| |
− | <FONT color=gray>' ''Crea un media player:''</font>
| |
− | mp = libvlc_media_player_new_from_media(m)
| |
− |
| |
− | <FONT color=gray>' ''Avvia l'esecuzione del file Midi da parte del media player:''</font>
| |
− | libvlc_media_player_play(mp)
| |
− |
| |
− | '''End'''
| |
− |
| |
− |
| |
− | '''Public''' Sub Button2_Click()
| |
− |
| |
− | <FONT color=gray>' ''Arresta l'esecuzione del file Midi:''</font>
| |
− | libvlc_media_player_stop(mp)
| |
− |
| |
− | <FONT color=gray>' ''Rilascia e chiude il media player:''</font>
| |
− | libvlc_media_player_release(mp)
| |
− |
| |
− | <FONT color=gray>' ''Chiude la libreria VLC:''</font>
| |
− | libvlc_release(inst)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | ===Esempio con applicazione ''a riga di comando''===
| |
− | Library "libvlc:5.4.0"
| |
− |
| |
− | Enum libvlc_NothingSpecial = 0,
| |
− | libvlc_Opening,
| |
− | libvlc_Buffering,
| |
− | libvlc_Playing,
| |
− | libvlc_Paused,
| |
− | libvlc_Stopped,
| |
− | libvlc_Ended,
| |
− | libvlc_Error
| |
− |
| |
− | <FONT color=gray>' ''libvlc_instance_t * libvlc_new (int argc, const char *const *argv)''
| |
− | ' ''Create And initialize a libvlc instance.''</font>
| |
− | Private Extern libvlc_new(argc As Integer, argv As String) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''libvlc_media_t * libvlc_media_new_path (libvlc_instance_t *p_instance, const char *path)''
| |
− | ' ''Create a media for a certain Midi file path.''</font>
| |
− | Private Extern libvlc_media_new_path(p_instance As Pointer, path As String) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''libvlc_media_player_t * libvlc_media_player_new_from_media (libvlc_media_t *p_md)''
| |
− | ' ''Create a Media Player object from a Media.''</font>
| |
− | Private Extern libvlc_media_player_new_from_media(p_md As Pointer) As Pointer
| |
− |
| |
− | <FONT color=gray>' ''int libvlc_media_player_play (libvlc_media_player_t * p_mi)''
| |
− | ' ''Play the Midi file.''</font>
| |
− | Private Extern libvlc_media_player_play(p_mi As Pointer) As Integer
| |
− |
| |
− | <FONT color=gray>' ''libvlc_state_t libvlc_media_player_get_state(libvlc_media_player_t *, libvlc_exception_t *)''
| |
− | ' ''Get current movie state.''</font>
| |
− | Private Extern libvlc_media_player_get_state(p_mi As Pointer, exception As Pointer) As Integer
| |
− |
| |
− | <FONT color=gray>' ''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.''</font>
| |
− | Private Extern libvlc_media_player_release(p_mi As Pointer)
| |
− |
| |
− | <FONT color=gray>' ''libvlc_release (libvlc_instance_t * p_instance)''
| |
− | ' ''Decrement the reference count of a libvlc instance, and destroy it if it reaches zero.''</font>
| |
− | Private Extern libvlc_release(p_instance As Pointer)
| |
− |
| |
− |
| |
− | '''Public''' Sub Main()
| |
− |
| |
− | Dim m As Pointer
| |
− | Dim inst As Pointer
| |
− | Dim mp As Pointer
| |
− | Dim i As Integer
| |
− |
| |
− |
| |
− | <FONT color=gray>' ''Inizializza la libreria VLC:''</font>
| |
− | inst = libvlc_new(0, Null)
| |
− |
| |
− | <FONT color=gray>' ''Crea un nuovo oggetto multimedia:''</font>
| |
− | m = libvlc_media_new_path(inst, "''/percorso/del/file/Midi''")
| |
− |
| |
− | <FONT color=gray>' ''Crea un media player:''</font>
| |
− | mp = libvlc_media_player_new_from_media(m)
| |
− |
| |
− | <FONT color=gray>' ''Avvia l'esecuzione del file Midi da parte del media player:''</font>
| |
− | libvlc_media_player_play(mp)
| |
− |
| |
− | While i < libvlc_Stopped
| |
− | i = libvlc_media_player_get_state(mp, 0)
| |
− | Wend
| |
− |
| |
− |
| |
− | <FONT color=gray>' ''Va in chiusura:''</font>
| |
− |
| |
− | <FONT color=gray>' ''Rilascia e chiude il media player:''</font>
| |
− | libvlc_media_player_release(mp)
| |
− |
| |
− | <FONT color=gray>' ''Chiude la libreria VLC:''</font>
| |
− | libvlc_release(inst)
| |
− |
| |
− | '''End'''
| |
− | | |
− | | |
− | | |
− | =Riferimenti=
| |
− | * Il sito del [http://www.videolan.org/developers/vlc/doc/doxygen/html/index.html API di LibVLC].
| |
− | * [https://wiki.videolan.org/Midi Videolan Wiki - Midi]
| |