Differenze tra le versioni di "Visualizzare un oscilloscopio od uno spettroscopio durante l'esecuzione di un file Midi mediante il Componente gb.media"
(2 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 3: | Riga 3: | ||
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. | 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 | Private bo As Boolean | ||
− | + | Public Sub Main() | |
Dim mp As MediaPlayer | Dim mp As MediaPlayer | ||
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=gray>' ''Attiva il Plugin grafico:''</font> | <FONT Color=gray>' ''Attiva il Plugin grafico:''</font> | ||
AvviaPlugin(mp) | AvviaPlugin(mp) | ||
Riga 29: | Riga 29: | ||
Quit | Quit | ||
− | + | End | |
− | + | ||
+ | Private Procedure AvviaPlugin(medpl As MediaPlayer) | ||
Dim plugVis As MediaControl | Dim plugVis As MediaControl | ||
Riga 48: | Riga 49: | ||
medpl.Video.Visualisation = arrplugin[2] | medpl.Video.Visualisation = arrplugin[2] | ||
− | + | End | |
+ | |||
− | + | Public Sub MediaPlayer1_End() <FONT Color=gray>' ''Questo Evento viene sollevato, quando l'escuzione è terminata''</font> | |
bo = True | bo = True | ||
− | + | End | |
+ | |||
− | + | Public Sub Application_Read() <FONT Color=gray>' ''Premendo il tasto "Invio" della tastiera, si arresta il programma''</font> | |
bo = True | 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("<FONT Color=darkgreen>''/percorso/del/file.mid''</font>") | ||
+ | <FONT Color=#b22222>.SetWindow(DrawingArea1)</font> | ||
+ | AvviaPlugin(mp) | ||
+ | .Play() | ||
+ | <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...