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 4: | Riga 4: | ||
− | ===Salvare la registrazione in un file audio WAV=== | + | ===Salvare la registrazione in un file audio WAV (44100 hertz, ''mono'', 16-bit)=== |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 20: | Riga 20: | ||
src.LinkTo(aco) | src.LinkTo(aco) | ||
aco.LinkTo(wen) | 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 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"] = "<FONT Color=gray>''/percorso/del/file.wav''</font>" | ||
+ | |||
+ | src.LinkTo(aco) | ||
+ | aco.LinkTo(aud) | ||
+ | aud.LinkTo(wen) | ||
wen.LinkTo(snk) | wen.LinkTo(snk) | ||
Versione delle 16:53, 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.
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.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 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.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