Eseguire un flusso video-audio di una web-TV con il Componente gb.media

Da Gambas-it.org - Wikipedia.
Vai alla navigazione Vai alla ricerca

Per eseguire un flusso video-audio di una web-TV, trasmesso secondo il protocollo IPTV, possiamo adottare il seguente codice:

Private Const WEB_TV As String = "https://d3749synfikwkv.cloudfront.net/v1/master/3722c60a815c199d9c0ef36c5b73da68a62b09d1/cc-74ylxpgd78bpb/Live.m3u8"
Private bo As Boolean


Public Sub Main()

 Dim pl As MediaPipeline
 Dim Vdcb, Vcon, Vsnk As MediaControl
 Dim Adbc, Acon, Ares, Asnk As MediaControl
 Dim tm As Date

 pl = New MediaPipeline

' Parte per vedere il video:
 Vdcb = New MediaControl(pl, "uridecodebin")
 Vdcb["uri"] = WEB_TV
 Vcon = New MediaControl(pl, "videoconvert")
 Vsnk = New MediaControl(pl, "autovideosink")

 Vdcb.LinkLaterTo(Vcon)
 Vcon.LinkTo(Vsnk)

''''''''''''''''''''''''''''''''''''''''''''''

' Parte per ascoltare l'audio:
 Adbc = New MediaControl(pl, "uridecodebin")
 Adbc["uri"] = WEB_TV
 Acon = New MediaControl(pl, "audioconvert")
 Ares = New MediaControl(pl, "audioresample")
 Asnk = New MediaControl(pl, "autoaudiosink")

 Adbc.LinkLaterTo(Acon)
 Acon.LinkTo(Ares)
 Ares.LinkTo(Asnk)

' Esegue il sistema di Pipeline come sopra realizzato:
 pl.Play

 tm = Now

 While Not bo
   Write "\r\e[0mTempo trascorso: \e[31m" & Str(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond)))
   Wait 0.01
 Wend

 pl.Stop
 pl.Close
' Avendo usato l'Evento "Application_Read()", per terminare il processo invoca l'istruzione "Quit":
 Quit

End


' Per terminare il programma e creare il file audio, cliccare nella console/terminale e successivamente premere il tasto "Invio" della tastiera.
Public Sub Application_Read()

 bo = True

End