Registrare il sonoro da una fonte esterna e salvarlo in un file audio mediante il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 7 ott 2016 alle 19:56 di Vuott (Discussione | contributi)
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.
Indice
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