Eseguire in streaming un video da youtube mediante l'oggetto WebView
Per eseguire in streaming un video direttamente da youtube con l'oggetto WebView - senza che sia mostrata l'intera pagina del sito, ma solo il riquadro del video - sono possibili almeno tre modalità.
Uso della proprietà .HTML uno specifico codice in html con il Tag <Iframe>
Questa modalità prevede che sia passata alla proprietà .HTML dell'oggetto WebView uno specifico codice in html contenente il Tag <Iframe>, avendo nel contempo cura di:
- attivare il componente gb.qt4.webkit;
- attivare da codice i plugin necessari per il video;
- far sì che l'indirizzo del video da eseguire sia così formato da tre parti:
- la parte finale sia rappresentata soltanto dal codice identificativo del video;
- tra la parte inziale del dominio e il codice identificativo del video vi deve essere inserita la parola " embed ".
Esempio:
https://www.youtube.com/embed/NgUGjCVkXXY
Vediamo di seguito un codice essenziale e funzionante:
Public Sub Form_Open() Dim wv As WebView Dim s As String = "<HTML><head><meta content=text/html; charset=ISO-8859-1 http-equiv=content-type><title>prueba</title></head>" & "<body><iframe src=https://www.youtube.com/embed/NgUGjCVkXXY height=315 width=420></iframe></body></html>" WebSettings[WebSettings.PluginsEnabled] = True With wv = New WebView(Me) .X = 50 .Y = 100 .W = 420 .H = 315 .HTML = s End With End
Uso della proprietà .Url
Questa modalità è più semplice nella sua codifica rispetto alla modalità precedente. Essa si basa sull'uso della proprietà .Url dell'oggetto WebView.
E' necessario creare l'oggetto WebView da codice, avendo cura di:
- non impostare (quindi lasciare a zero) le sue proprietà .W e .H;
- ipostare in modo adeguato al Form le proprietà .X e .Y .
Mostriamo un semplice esempio:
Public Sub Form_Open() Dim wv As WebView WebSettings[WebSettings.PluginsEnabled] = True With wv = New WebView(Me) .X = 50 .Y = -150 .Url = "https://www.youtube.com/watch?v=NgUGjCVkXXY" End With End
Lettura del codice html della pagina del video
Questa modalità prevede la lettura del codice html della pagina contenente il video, e la successiva scelta delle parti di codice essenziali per l'esecuzione del video.
Mostriamo un semplice esempio, nel quale sul Form dovranno essere posti due Button ed una ProgressBar:
Public Sub Button1_Click() Dim wv As WebView With wv = New WebView(Me) .Url = "https://www.youtube.com/watch?v=NgUGjCVkXXY" While .Progress < 1.0 Wait 0.01 ProgressBar1.Value = .Progress Wend End With Wait 0.5 ProgressBar1.Visible = False Avvia_Video(wv) End Public Procedure Avvia_Video(vid As WebView) Dim stringa, s As String Dim i1, i2 As Integer stringa = vid.HTML s = Left(stringa, InStr(stringa, "<head>") - 1) i1 = InStr(stringa, "<div id=\"player-api\"") i2 = InStr(stringa, "</div>", i1) s &= "\n" & Mid(stringa, i1 - 1, (i2 - i1) + 7) i1 = InStr(stringa, "<script>var ytplayer") i2 = InStr(stringa, "</script>", i1) s &= "\n" & Mid(stringa, i1 - 1, (i2 - i1) + 10) & "</html>" WebSettings[WebSettings.PluginsEnabled] = True With vid .X = 100 .Y = 100 .W = 330 .H = 175 .HTML = s End With End Public Sub Button2_Click() Me.Close End