Riproduzione dell'audio di radio WEB mediante il Componente gb.media

Da Gambas-it.org - Wikipedia.

Le stazioni radio via WEB possono essere ascoltate in streaming anche utilizzando le risorse del Componente gb.media di Gambas.


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: " & CStr(Date(0, 0, 0, 0, 0, 0, mp.Position * 1000))
   Wait 0.001
 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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
   Wait 0.001
 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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
   Wait 0.001
 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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
   Wait 0.001
 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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
   Wait 0.001
 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 bo As Boolean


Public Sub Form_Open()
 
 Dim mp As MediaPlayer
 Dim usc As MediaControl
 
  Me.Show
  
  With mp = New MediaPlayer
    .URL = "http://indirizzo/web/del/flusso/radio/live"
  End With
  
  usc = New MediaControl(mp, "jackaudiosink")
  mp.Audio.Output = usc
  
  mp.Play()
  
  While bo = False
' Mostra in un "TextBox" il tempo trascorso dall'avvio del processo dei dati audio ricevuti:
    TextBox1.Text = CStr(Date(0, 0, 0, 0, 0, 0, mp.Position * 1000))
    Wait 0.01
  Wend
  
  mp.Stop
  mp.Close   
  Me.Close
  
End


Public Sub Button1_Click()    ' Premendo sul "Button" si chiuderà il programma
 
  bo = True
  
End