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

Da Gambas-it.org - Wikipedia.
Riga 2: Riga 2:
  
 
Mostriamo di seguito alcuni casi.
 
Mostriamo di seguito alcuni casi.
 +
 +
 +
===Salvare la registrazione in un file audio WAV===
 +
'''Public''' Sub Main()
 +
 
 +
  Dim pl As MediaPipeline
 +
  Dim src, aco, wen, snk As MediaControl
 +
 
 +
  pl = New MediaPipeline
 +
 
 +
  src = New MediaControl(pl, "alsasrc") 
 +
  aco = New MediaControl(pl, "audioconvert")
 +
  wen = New MediaControl(pl, "wavenc")
 +
  snk = New MediaControl(pl, "filesink")
 +
  snk["location"] = "<FONT Color=gray>''/percorso/del/file.wav''</font>"
 +
 
 +
  src.LinkTo(aco)
 +
  aco.LinkTo(wen)
 +
  wen.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'''
  
  

Versione delle 17:41, 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 WAV

Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, aco, wen, snk As MediaControl
 
  pl = New MediaPipeline 
  
  src = New MediaControl(pl, "alsasrc")   
  aco = New MediaControl(pl, "audioconvert")
  wen = New MediaControl(pl, "wavenc")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/percorso/del/file.wav"
  
  src.LinkTo(aco)
  aco.LinkTo(wen)
  wen.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


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