Differenze tra le versioni di "Estrarre informazioni e TAG da un file audio con le funzioni esterne del API di VLC"

Da Gambas-it.org - Wikipedia.
Riga 5: Riga 5:
  
 
Mostriamo un semplice esempio pratico:
 
Mostriamo un semplice esempio pratico:
  Library "libvlc"
+
  Library "libvlc:5.6.0"
 
   
 
   
 
  Private Enum libvlc_meta_Title = 0, libvlc_meta_Artist, libvlc_meta_Genre, libvlc_meta_Copyright,
 
  Private Enum libvlc_meta_Title = 0, libvlc_meta_Artist, libvlc_meta_Genre, libvlc_meta_Copyright,
Riga 38: Riga 38:
 
  ' ''Decrement the reference count of a libvlc instance, and destroy it if it reaches zero.''</font>
 
  ' ''Decrement the reference count of a libvlc instance, and destroy it if it reaches zero.''</font>
 
  Private Extern libvlc_release(p_instance As Pointer)
 
  Private Extern libvlc_release(p_instance As Pointer)
 
 
'''Public''' Sub Main()
 
 
 
  Dim inst, media As Pointer
 
  Dim fileaudio, meta As String
 
  Dim info as String[]
 
  Dim i As Integer
 
 
 
<FONT Color=gray>' ''Cerca di estrapolare solo i primi nove TAG più interessanti:''</font>
 
  info = ["Titolo:        ", "Artista:        ", "Genere:        ", "Copyright:      ", "Album:          ",
 
          "Numero traccia: ", "Descrizione:    ", "Rating:        ", "Data:          "]
 
 
 
  fileaudio = "<FONT Color=gray>''/percorso/del/file/audio''</font>"
 
 
 
  inst = libvlc_new(0, Null)
 
 
 
  media = libvlc_media_new_path(inst, fileaudio)
 
 
 
  libvlc_media_parse(media)
 
 
 
<FONT Color=gray>' ''Cerca di estrapolare i primi nove TAG:''</font>
 
  For i = 0 To 8
 
    meta = libvlc_media_get_meta(media, i)
 
    Print info[i]; meta
 
  Next
 
 
 
<FONT Color=gray>' ''Va in chiusura:''</font>
 
  libvlc_media_release(media)
 
  libvlc_release(inst)
 
 
 
'''End'''
 
  
  

Versione delle 16:21, 9 ago 2020

La libreria LibVLC consente, fra l'altro, di estrarre informazioni dai TAG dei file audio: MP3, OGG, WMA.

E' necessario avere installata nel proprio sistema e richiamare in Gambas la libreria dinamica condivisa: "libvlc.so.5.6.0"


Mostriamo un semplice esempio pratico:

Library "libvlc:5.6.0"

Private Enum libvlc_meta_Title = 0, libvlc_meta_Artist, libvlc_meta_Genre, libvlc_meta_Copyright,
             libvlc_meta_Album, libvlc_meta_TrackNumber, libvlc_meta_Description, libvlc_meta_Rating,
             libvlc_meta_Date, libvlc_meta_Setting, libvlc_meta_URL, libvlc_meta_Language,
             libvlc_meta_NowPlaying, libvlc_meta_Publisher, libvlc_meta_EncodedBy, libvlc_meta_ArtworkURL,
             libvlc_meta_TrackID, libvlc_meta_TrackTotal, libvlc_meta_Director, libvlc_meta_Season,
             libvlc_meta_Episode, libvlc_meta_ShowName, libvlc_meta_Actors, libvlc_meta_AlbumArtist,
             libvlc_meta_DiscNumber, libvlc_meta_DiscTotal

' 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 file path.
Private Extern libvlc_media_new_path(p_instance As Pointer, path As String) As Pointer

' void libvlc_media_parse (libvlc_media_t *p_md)
' Parse a media.
Private Extern libvlc_media_parse(p_md As Pointer)

' char * libvlc_media_get_meta (libvlc_media_t *p_md, libvlc_meta_t e_meta)
' Read the meta of the media.
Private Extern libvlc_media_get_meta(p_md As Pointer, e_meta As Integer) As String

' void libvlc_media_release (libvlc_media_t *p_md)
' Decrement the reference count of a media descriptor object.
Private Extern libvlc_media_release(p_md As Pointer)

' void 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)



Riferimenti