Registrare il sonoro da una fonte esterna e salvarlo in un file audio mediante il Componente gb.media: differenze tra le versioni

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca
(Creata pagina con "Il Componente ''gb.media'' consente mediante appositi plugin di ''GStreamer'' di registrare una fonte sonora esterna (ad esempio da un microfono) e salvare, quanto registrato,...")
 
Nessun oggetto della modifica
Riga 8: Riga 8:
    
    
   Dim pl As MediaPipeline
   Dim pl As MediaPipeline
   Dim src, ode, vde, aco, snk As MediaControl
   Dim src, aco, ven, omu, snk As MediaControl
    
    
   pl = New MediaPipeline  
   pl = New MediaPipeline  
    
    
   src = New MediaControl(pl, "alsasrc")   
   src = New MediaControl(pl, "alsasrc")   
   ode = New MediaControl(pl, "audioconvert")
   aco = New MediaControl(pl, "audioconvert")
   vde = New MediaControl(pl, "vorbisenc")
   ven = New MediaControl(pl, "vorbisenc")
   aco = New MediaControl(pl, "oggmux")
   omu = New MediaControl(pl, "oggmux")
   snk = New MediaControl(pl, "filesink")
   snk = New MediaControl(pl, "filesink")
   snk["location"] = "<FONT Color=gray>''/percorso/del/file.ogg''</font>"
   snk["location"] = "<FONT Color=gray>''/percorso/del/file.ogg''</font>"
    
    
   src.LinkTo(ode)
   src.LinkTo(aco)
   ode.LinkTo(vde)
   aco.LinkTo(ven)
   vde.LinkTo(aco)
   ven.LinkTo(omu)
   aco.LinkTo(snk)
   omu.LinkTo(snk)
    
    
   pl.State = Media.Playing
   pl.State = Media.Playing

Versione delle 17:38, 1 ott 2016

Il Componente gb.media consente mediante appositi plugin di GStreamer di registrare una fonte sonora esterna (ad esempio da un microfono) e salvare, quanto registrato, in un file audio.

Mostriamo di seguito alcuni casi.


Salvare la registrazione in un file audio OGG

Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, aco, ven, omu, snk As MediaControl
 
  pl = New MediaPipeline 
  
  src = New MediaControl(pl, "alsasrc")   
  aco = New MediaControl(pl, "audioconvert")
  ven = New MediaControl(pl, "vorbisenc")
  omu = New MediaControl(pl, "oggmux")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/percorso/del/file.ogg"
  
  src.LinkTo(aco)
  aco.LinkTo(ven)
  ven.LinkTo(omu)
  omu.LinkTo(snk)
  
  pl.State = Media.Playing
  pl.Play()
  
  While pl.State = Media.Playing
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
  Wend
  
End