Differenze tra le versioni di "Riproduzione dell'audio di radio WEB mediante il Componente gb.media"
Riga 20: | Riga 20: | ||
Repeat | Repeat | ||
<FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | <FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | ||
− | Write "\rTempo trascorso: " & | + | Write "\rTempo trascorso: " & Str(Time(0, 0, 0, mp.Position * 1000)) |
− | Wait 0. | + | Wait 0.01 |
Until bo = True | Until bo = True | ||
Riga 56: | Riga 56: | ||
Repeat | Repeat | ||
<FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | <FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | ||
− | Write "\rTempo trascorso: " & | + | Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) |
− | Wait 0. | + | Wait 0.01 |
Until bo = True | Until bo = True | ||
Riga 96: | Riga 96: | ||
Repeat | Repeat | ||
<FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | <FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | ||
− | Write "\rTempo trascorso: " & | + | Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) |
− | Wait 0. | + | Wait 0.01 |
Until bo = True | Until bo = True | ||
Riga 137: | Riga 137: | ||
Repeat | Repeat | ||
<FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | <FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | ||
− | Write "\rTempo trascorso: " & | + | Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) |
− | Wait 0. | + | Wait 0.01 |
Until bo = True | Until bo = True | ||
Riga 181: | Riga 181: | ||
Repeat | Repeat | ||
<FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | <FONT Color=gray>' ''Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | ||
− | Write "\rTempo trascorso: " & | + | Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) |
− | Wait 0. | + | Wait 0.01 |
Until bo = True | Until bo = True | ||
Riga 226: | Riga 226: | ||
While mp.State == Media.Playing | While mp.State == Media.Playing | ||
<FONT Color=gray>' ''Mostra nell'intestazione della finestra il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | <FONT Color=gray>' ''Mostra nell'intestazione della finestra il tempo trascorso dall'avvio del processo dei dati audio ricevuti:''</font> | ||
− | Me.Caption = Format( | + | Me.Caption = Format(Time(0, 0, 0, mp.Position * 1000), "hh:nn:ss.uuu") |
Wait 0.01 | Wait 0.01 | ||
Wend | Wend |
Versione delle 16:16, 27 giu 2021
Le stazioni radio via WEB possono essere ascoltate in streaming anche utilizzando le risorse del Componente gb.media di Gambas.
Indice
Uso della Classe MediaPlayer
L'utilizzo della Classe MediaPlayer prevede l'uso del plug-in playbin.
Mostriamo un esempio pratico, nel quale basterà premere il tasto "Invio" per chiudere il programma.
Private bo As Boolean Public Sub Main() Dim mp As MediaPlayer With mp = New MediaPlayer .URL = "http://indirizzo/web/del/flusso/radio/live" .Play End With Repeat ' Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti: Write "\rTempo trascorso: " & Str(Time(0, 0, 0, mp.Position * 1000)) Wait 0.01 Until bo = True mp.Stop mp.Close Quit End Public Sub Application_Read() bo = True End
Uso della Classe MediaPipeline
L'utilizzo della Classe MediaPipeline prevede l'uso del plug-in "playbin".
Mostriamo un esempio pratico, nel quale basterà premere il tasto "Invio" per chiudere il programma.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline pl = New MediaPipeline(Null, "playbin") pl["uri"] = "http://indirizzo/web/del/flusso/radio/live" pl.Play() Repeat ' Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti: Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) Wait 0.01 Until bo = True pl.Stop pl.Close Quit End Public Sub Application_Read() bo = True End
Uso delle Classi MediaPipeline e MediaControl
Si potrà fare uso anche delle Classi MediaPipeline e MediaControl.
L'esempio, che segue, prevede l'uso del plug-in "playbin". Basterà premere il tasto "Invio" per chiudere il programma.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "playbin") src["uri"] = "http://indirizzo/web/del/flusso/radio/live" pl.Play() Repeat ' Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti: Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) Wait 0.01 Until bo = True pl.Stop pl.Close Quit End Public Sub Application_Read() bo = True End
Quest'altro esempio prevede l'uso dei plug-in "uridecodebin". Basterà premere il tasto "Invio" per chiudere il programma.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, cnv, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "uridecodebin") src["uri"] = "http://indirizzo/web/del/flusso/radio/live" cnv = New MediaControl(pl, "audioconvert") snk = New MediaControl(pl, "autoaudiosink") src.LinkLaterTo(cnv) cnv.LinkTo(snk) pl.Play() Repeat ' Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti: Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) Wait 0.01 Until bo = True pl.Stop pl.Close Quit End Public Sub Application_Read() bo = True End
Quest'altro esempio prevede l'uso dei plug-in "souphttpsrc" e "decodebin".
asterà premere il tasto "Invio" per chiudere il programma.
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, dcd, cnv, snk As MediaControl pl = New MediaPipeline src = New MediaControl(pl, "souphttpsrc") src["location"] = "http://indirizzo/web/del/flusso/radio/live" dcd = New MediaControl(pl, "decodebin") cnv = New MediaControl(pl, "audioconvert") snk = New MediaControl(pl, "autoaudiosink") src.LinkTo(dcd) dcd.LinkLaterTo(cnv) cnv.LinkTo(snk) pl.Play() Repeat ' Mostra in console il tempo trascorso dall'avvio del processo dei dati audio ricevuti: Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000)) Wait 0.01 Until bo = True pl.Stop pl.Close Quit End Public Sub Application_Read() bo = True End
Uso delle Classi MediaPlayer e MediaControl e del plug-in jackaudiosink
L'uso delle Classi MediaPlayer e MediaControl e del plug-in jackaudiosink richiede che sia preliminarmente avviato il programma server Jack.
Mostriamo un esempio questa volta in ambiente grafico:
Private mp As MediaPlayer Public Sub Form_Open() Dim usc As MediaControl With mp = New MediaPlayer .URL = "http://indirizzo/web/del/flusso/radio/live" End With usc = New MediaControl(mp, "jackaudiosink") mp.Audio.Output = usc End Public Sub ToggleButton1_Click() If ToggleButton1.Value Then mp.Play While mp.State == Media.Playing ' Mostra nell'intestazione della finestra il tempo trascorso dall'avvio del processo dei dati audio ricevuti: Me.Caption = Format(Time(0, 0, 0, mp.Position * 1000), "hh:nn:ss.uuu") Wait 0.01 Wend Else mp.Stop mp.Close Me.Caption = "00:00:00.000" Endif End