Differenze tra le versioni di "Riproduzione dell'audio di radio WEB mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
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: " & CStr(Date(0, 0, 0, 0, 0, 0, mp.Position * 1000))
+
     Write "\rTempo trascorso: " & Str(Time(0, 0, 0, mp.Position * 1000))
     Wait 0.001
+
     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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
+
     Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000))
     Wait 0.001
+
     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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
+
     Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000))
     Wait 0.001
+
     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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
+
     Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000))
     Wait 0.001
+
     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: " & CStr(Date(0, 0, 0, 0, 0, 0, pl.Position * 1000))
+
     Write "\rTempo trascorso: " & Str(Time(0, 0, 0, pl.Position * 1000))
     Wait 0.001
+
     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(Date(0, 0, 0, 0, 0, 0, mp.Position * 1000), "hh:nn:ss.uuu")
+
       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.


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