Differenze tra le versioni di "Visualizzare un oscilloscopio od uno spettroscopio durante l'esecuzione di un file Midi mediante il Componente gb.media"
Riga 78: | Riga 78: | ||
With mp = New MediaPlayer As "MediaPlayer1" | With mp = New MediaPlayer As "MediaPlayer1" | ||
− | .URL = Media.URL("<FONT Color= | + | .URL = Media.URL("<FONT Color=darkgreen>''/percorso/del/file.mid''</font>") |
<FONT Color=#b22222>.SetWindow(DrawingArea1)</font> | <FONT Color=#b22222>.SetWindow(DrawingArea1)</font> | ||
AvviaPlugin(mp) | AvviaPlugin(mp) | ||
.Play() | .Play() | ||
<FONT Color=gray>''etc... etc...''</font> | <FONT Color=gray>''etc... etc...''</font> |
Versione attuale delle 18:46, 17 gen 2024
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.
Semplice esempio in un'applicazione a riga di comando
Private bo As Boolean Public Sub Main() Dim mp As MediaPlayer With mp = New MediaPlayer As "MediaPlayer1" .URL = Media.URL("/percorso/del/file.mid") ' Attiva il Plugin grafico: AvviaPlugin(mp) .Play() Print "Durata del file Midi: \e[34m"; Str(Time(0, 0, 0, .Duration * 1000)) Repeat Write "\r\e[0mTempo trascorso: \e[1m\e[31m" & Str(Time(0, 0, 0, .Position * 1000)) Wait 0.01 Until bo .Stop .Close End With Write "\n\e[0mEsecuzione terminata !" ' Avendo utilizzato l'Evento "Application_Read()", è necessario invocare l'istruzione "Quit" per terminare il programma: Quit 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 Public Sub MediaPlayer1_End() ' Questo Evento viene sollevato, quando l'escuzione è terminata bo = True End Public Sub Application_Read() ' Premendo il tasto "Invio" della tastiera, si arresta il programma bo = True End
Se si vuole far apparire l'effetto grafico del plugin in una DrawingArea
Se, avendo un'applicazione in ambiente grafico, si intende far apparire l'effetto grafico del plugin all'interno di una DrawingAea sarà sufficiente impostare tale Oggetto nel Metodo ".SetWindow()".
Riprendendo il codice precedente, fatte le dovute modifiche per l'ambiente grafico, posta una DrawingArea sul Form, si imposterà come segue:
Private bo As Boolean Public Sub Button1_Click() Dim mp As MediaPlayer With mp = New MediaPlayer As "MediaPlayer1" .URL = Media.URL("/percorso/del/file.mid") .SetWindow(DrawingArea1) AvviaPlugin(mp) .Play() etc... etc...