Visualizzare un oscilloscopio od uno spettroscopio durante l'esecuzione di un file Midi mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.

Per visualizzare in apposita finestra, generata dalle risorse di Gstreamer, un oscilloscopio od uno spettroscopio durante l'esecuzione di un file Midi mediante il Componente gb.media, è necessario utilizzare gli appositi plugin forniti da GStreamer attraverso la Classe MediaControl.

Si imposterà il plugin "monoscope" o il plugin "wavescope" per ottenere la visualizzazione di un oscilloscopio. Si utilizzerà il plugin "spectrascope", per ottenere la visualizzazione di uno spettroscopio.


Mostriamo un semplice esempio pratico:

Public Sub Main()
 
 Dim mp As New MediaPlayer
 Dim s As String
  
  mp.URL = Media.URL("/percorso/del/file.mid")
 
  AvviaPlugin(mp)
  
' Esegue il file Midi:
  mp.Play()
  
' Utilizziamo la funzione "Input" per consentire l'esecuzione del file audio, evitando così un eccessivo
' aggravio di lavoro per la CPU. Inoltre, premendo il tasto "Invio" viene interrotta l'esecuzione.
  Input s
 
  mp.Stop()
   
End


Private Procedure AvviaPlugin(medpl As MediaPlayer)
 
 Dim plugVis As MediaControl
 Dim b As Byte
 Dim tipoPlug As String[] = ["monoscope", "spectrascope", "wavescope"]
 Dim arrplugin As MediaControl[]
  
' Un array di variabili di tipo "MediaControl", ossia di vari PlugIn disponibili:
  arrplugin = New MediaControl[]
  For b = 0 To tipoPlug.Max
    plugVis = New MediaControl(medpl, tipoPlug[b])
    arrplugin.Push(plugVis)
  Next
  
' Imposta il plug-in da utilizzare fra quelli contenuti dal vettore "arrplugin":
  medpl.Video.Visualisation = arrplugin[2]
     
End