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 21: | Riga 21: | ||
aco.LinkTo(wen) | aco.LinkTo(wen) | ||
wen.LinkTo(snk) | 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 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"] = "<FONT Color=gray>''/percorso/del/file.wav''</font>" | ||
+ | |||
+ | src.LinkTo(aco) | ||
+ | aco.LinkTo(len) | ||
+ | len.LinkTo(snk) | ||
pl.State = Media.Playing | pl.State = Media.Playing |
Versione delle 16:44, 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 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.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