Eseguire in streaming un video da youtube mediante l'oggetto WebView

Da Gambas-it.org - Wikipedia.

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 con uno specifico codice in html

Si fa uso della prorietà .HTML dell'oggetto WebView assegnandole uno specifico codice in html con due possibili elementi per eseguire in streaming i video da youtube.

Uso dell'elemento <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
     
  WebSettings[WebSettings.PluginsEnabled] = True
 
  With wv = New WebView(Me)
    .X = 20
    .Y = 100
    .W = 660
    .H = 500
    .HTML = "<IFRAME width=640 height=480 src=http://www.youtube.com/embed/NgUGjCVkXXY frameborder=0 allowfullscreen></iframe>"
  End With

End


Uso dell'elemento Embed

Possiamo, similmente al caso precedente, utilizzare l'elemento Embed.


 Vediamo di seguito un codice essenziale e funzionante:
Public Sub Form_Open()
 
 Dim wv As WebView
     
  WebSettings[WebSettings.PluginsEnabled] = True
 
  With wv = New WebView(Me)
    .X = 20
    .Y = 100
    .W = 660
    .H = 500
    .HTML = "<EMBED src=http://www.youtube.com/embed/NgUGjCVkXXY width=640 height=480></embed>"
  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