Differenze tra le versioni di "Visualizzare un oscilloscopio od uno spettroscopio durante l'esecuzione di un file Midi mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
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''.
 
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.
+
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:
 
Mostriamo un semplice esempio pratico:
 +
Private bo As Boolean
 +
 +
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
   Dim mp As New MediaPlayer
+
   Dim mp As MediaPlayer
   Dim s As String
+
 
+
   With mp = New MediaPlayer As "MediaPlayer1"
  mp.URL = Media.URL("<FONT Color=gray>''/percorso/del/file.mid''</font>")
+
    .URL = Media.URL("<FONT Color=gray>''/percorso/del/file.mid''</font>")
 +
<FONT Color=gray>' ''Attiva il Plugin grafico:''</font>
 +
    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
 
    
 
    
  AvviaPlugin(mp)
+
  Write "\n\e[0mEsecuzione terminata !"
 
+
  <FONT Color=gray>' ''Avendo utilizzato l'Evento "Application_Read()", è necessario invocare l'istruzione "Quit" per terminare il programma:''</font>
  <FONT Color=gray>' ''Esegue il file Midi:''</font>
+
   Quit
  mp.Play()
+
 
 
<FONT Color=gray>' ''Utilizziamo la funzione "Input" per consentire l'esecuzione del file Midi, evitando così un eccessivo''
 
' ''aggravio di lavoro per la CPU. Inoltre, premendo il tasto "Invio" viene interrotta l'esecuzione del file.''</font>
 
  Input s
 
    
 
  mp.Stop()
 
   
 
 
  '''End'''
 
  '''End'''
 
   
 
   
 +
'''Private''' Procedure AvviaPlugin(medpl As MediaPlayer)
 
   
 
   
'''Private''' Procedure AvviaPlugin(medpl As MediaPlayer)
 
 
 
 
   Dim plugVis As MediaControl
 
   Dim plugVis As MediaControl
 
   Dim b As Byte
 
   Dim b As Byte
 
   Dim tipoPlug As String[] = ["monoscope", "spectrascope", "wavescope"]
 
   Dim tipoPlug As String[] = ["monoscope", "spectrascope", "wavescope"]
 
   Dim arrplugin As MediaControl[]
 
   Dim arrplugin As MediaControl[]
 
+
 
  <FONT Color=gray>' ''Un array di variabili di tipo "MediaControl", ossia di vari PlugIn disponibili:''</font>
 
  <FONT Color=gray>' ''Un array di variabili di tipo "MediaControl", ossia di vari PlugIn disponibili:''</font>
  arrplugin = New MediaControl[]
+
  arrplugin = New MediaControl[]
  For b = 0 To tipoPlug.Max
+
  For b = 0 To tipoPlug.Max
    plugVis = New MediaControl(medpl, tipoPlug[b])
+
    plugVis = New MediaControl(medpl, tipoPlug[b])
    arrplugin.Push(plugVis)
+
    arrplugin.Push(plugVis)
  Next
+
  Next
 
+
 
  <FONT Color=gray>' ''Imposta il plug-in da utilizzare fra quelli contenuti dal vettore "arrplugin":''</font>
 
  <FONT Color=gray>' ''Imposta il plug-in da utilizzare fra quelli contenuti dal vettore "arrplugin":''</font>
  medpl.Video.Visualisation = arrplugin[2]
+
  medpl.Video.Visualisation = arrplugin[2]
     
+
 
  '''End'''
 
  '''End'''

Versione delle 17:57, 17 set 2022

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:

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
 
 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