Registrare il sonoro da una fonte esterna e salvarlo in un file audio mediante il Componente gb.media
Vai alla navigazione
Vai alla ricerca
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 (44100 hertz, mono, 16-bit)
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.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 WAV (44100 hertz, stereo, 16-bit)
Public Sub Main()
Dim pl As MediaPipeline
Dim src, aco, aud, wen, snk As MediaControl
pl = New MediaPipeline
src = New MediaControl(pl, "alsasrc")
aco = New MediaControl(pl, "audioconvert")
aud = New MediaControl(pl, "audio/x-raw,rate=44100,depth=16,channels=2,width=16,signed=true")
wen = New MediaControl(pl, "wavenc")
snk = New MediaControl(pl, "filesink")
snk["location"] = "/percorso/del/file.wav"
src.LinkTo(aco)
aco.LinkTo(aud)
aud.LinkTo(wen)
wen.LinkTo(snk)
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 MP3
Public Sub Main()
Dim pl As MediaPipeline
Dim src, aco, len, snk As MediaControl
pl = New MediaPipeline
src = New MediaControl(pl, "alsasrc")
aco = New MediaControl(pl, "audioconvert")
len = New MediaControl(pl, "lamemp3enc")
snk = New MediaControl(pl, "filesink")
snk["location"] = "/percorso/del/file.wav"
src.LinkTo(aco)
aco.LinkTo(len)
len.LinkTo(snk)
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.Play()
While pl.State = Media.Playing
Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
Wend
End