Al di là del programma VLC, e quindi operando invece soltanto in ambito Gambas, è possibile agevolmente vedere i filmati anche con l'oggetto WebView attivando il componente gb.qt4.webkit:
Public Sub Button1_Click()
' E' assolutamente necessario abilitare i plugin:
WebSettings[WebSettings.PluginsEnabled] = True
WebView1.Url = "indirizzo_web_video"
End
Esempio:
Public Sub Button1_Click()
WebSettings[WebSettings.PluginsEnabled] = True
WebView1.Url = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=T7YQjexnS2MeeqqEEqual&rtv_societa^rtv_ballaro_medium_box^300x250^"
End
Nonostante la mia totale ignoranza in ambito programmazione rivolta al Web,
Io non sto messo meglio...
...sono andato subito KO. Ho attivato i componenti gb.web e gb.qt4.webkit. Ti sottopongo il mio codice:
........
Domande: da quello che hai scritto tu, come da citazione, l'istruzione al rigo 4 dovrebbe servire ad attivare i plugin presenti in Gambas?
Sì.
Domande:
WebView1.Url senza la Dim locale mi dava errore, però non so se ho scritto bene
Risultato: Al click sul pulsante ricevo il messaggio di errore "Null Object"
WebView è un oggetto facente parte del componente gb.qt4.webkit. Lo puoi porre sul Form dall'IDE oppure via codice. Se lo crei via codice, devi, come ogni altro oggetto, usare la parola New ed attribuirgli alcune classiche proprietà: coordinate all'interno del Form e sue dimensioni.
Esempio:
Public Sub Form_Open()
Dim wv as WebView
With wv = New WebView(Me)
.X = ' dove vuoi tu
.Y = ' dove vuoi tu
.W = ' quanto vuoi tu
.H = ' quanto vuoi tu
End With
End
(In vero, per talune necessità è possibile utilizzare l'oggetto WebView anche senza dimensionarlo geometricamente).
Domande:
... e non ho capito che cosa sia .Url (proprietà?)
Sì, è una proprietà che ritorna od imposta l'URL della pagina web. Per caricare una pagina html, devi usare tale proprietà.
Pertanto, ad esempio:
Public Sub Form_Open()
Dim wv as WebView
With wv = New WebView(Me)
.X = ' dove vuoi tu
.Y = ' dove vuoi tu
.W = ' quanto vuoi tu
.H = ' quanto vuoi tu
.Url = "http://www.gambas-it.org/smf"
End With
End
Ho capito il concetto ed ho preferito disegnare l'oggetto direttamente nella Form.
Ho modificato perciò il codice così:
Public Sub PulsAvvia_Click()
Dim Video As WebView
'------------------------------------------------------------
' E' assolutamente necessario abilitare i plugin:
WebSettings[WebSettings.PluginsEnabled] = True
With Video = New WebView(Me)
.Url = "http://www.gambas-it.org/smf"
' .Url = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=T7YQjexnS2MeeqqEEqual&rtv_societa^rtv_ballaro_medium_box^300x250^"
' .Url = IndirWeb.Text
End With
End
Il tuo esempio lavora dentro la Sub Form_Open(), il mio dentro la Sub PulsAvvia_Click().
Dopo il click sul pulsante che scatena l'evento di avvio connessione al sito per la visione del filmato, non succede proprio niente. Ho provato sia col tuo url di esempio che col mio. ???
:(
Il programmino che mi hai insegnato a scrivere funziona, ma non sui filmati che vorrei vedere.
Io sospetto che i filmati recentissimi non siano visibili con la modalità da me suggerita.
Ripeto che il video non è visibile, se nel sergente del codice html della pagina (dopo aver cliccato sul collegamento al filmato prescelto) non è presente questa variabile:
var videoURL = "indirizzo_web_del_file_video";
esempio pratico della variabile stringa in JavaScript e di un suo contenuto video:
var videoURL = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=oO9JKRuBbuEeeqqEEqual";
Peppaaaaaaaaaaaaaaa !
in altri casi bisogna invece individuare quest'altra variabile:
var videoURL_MP4 = "indirizzo_web_del_file_video";
In altri casi, poi, sono utilizzabili gli indirizzi contenuti in entrambe le varibili.
Ieri sera, mentre cercavo come suèperare l'ostacolo, ho scoperto che dal sito RAI potevo arrivare attraverso la sezione ad una schermata come quella allegata, preliminare all'avvio del filmato. Cliccando sul pulsante MP4 Direct Link potevo avviare il filmato. Pensavo di potere ottenere lo stesso risultato tramite l'utilizzo dell'oggetto WebView. Ho allora inserito nella stringa-link l'indirizzo che, in base al mio ragionamento, mi avrebbe permesso di disporre del pulsante "MP4 Direct Link". L'istruzione ricavata è:
Video.URL = "http://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-4e2c5c2f-9de9-4715-8bbc-4ba9bfd18b64.html#p="
Ebbene, il programma parte, la pagina web si apre, ma l'immagine che mi compare è quella solita che mi invita ad installare Silverlight.
Sarebbe bellissimo poterci arrivare da programma, ma non capisco come fare.
Poco fa ho provato a fornire nella riga di programma direttamente l'indirizzo del filmato in MP4, ma l'esito è sempre negativo.
:(
Il video di Rai sport (GP della Malesia) che hai indicato io sono riuscito a vederlo. Come ti ho già detto, quando ti appare la finestra, nella quale ti viene richiesto di installare SilverLight, devi aprire il codice sorgente HTML/JavaScript di quella pagina.
Lì alle righe 963 e 965 (per quanto riguarda la finestra relativa al video da te segnalato) troverai queste due linee di codice:
var videoURL = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=7LNjSnO9KaYeeqqEEqual";
var videoURL_MP4 = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=S1eljHGttGMeeqqEEqual";
Ho constatato che vanno bene entrambi gli indirizzi.
Basta un codice come questo:
Public Sub Form_Open()
Dim wv As WebView
WebSettings[WebSettings.PluginsEnabled] = True
With wv = New WebView(Me)
.X = 1
.Y = 1
.W = 600
.H = 500
.Url = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=7LNjSnO9KaYeeqqEEqual"
End With
End
Una volta lanciato l'applicativo, dopo alcuni secondi l'area dell'oggetto WebView diventa nera. Bisogna restare ancora in attesa che venga caricata almeno una sufficiente parte del file video, quindi dopo alcuni secondi il video partirà.
Il video di Rai sport (GP della Malesia) che hai indicato io sono riuscito a vederlo. Come ti ho già detto, quando ti appare la finestra, nella quale ti viene richiesto di installare SilverLight, devi aprire il codice sorgente HTML/JavaScript di quella pagina.
Mi dispiace deluderti, ma, come ho detto prima, sono un perfetto ignorante dell'ambiente Web. Ciò significa che non ho trovato come entrare in HTML/JavaScript. Quindi non sono in grado di seguire le tue indicazioni. :-\
Andiamo al codice che hai riportato nel post precedente. Come sai ho preferito disegnare la form ed al suo interno l'oggetto WebView; nella Form ho inserito anche una TextBox dove scrivere/trasferire l'indirizzo a cui mi interessa accedere per la successiva visione. É ancora rudimentale, ma penso di perfezionarla per ottenere una sorta di archivio degli URL preferiti. Con un simile approcciò potrò evitare di valorizzare di volta in volta, prima di lanciare il programma, la riga:
Video.Url = "http://mediapolisvod.rai.it/relinker/relinkerServlet.htm?cont=7LNjSnO9KaYeeqqEEqual"
Dopo che avrò imparato a muovermi nel labirinto dei siti difficili, penserò a migliorare il programmino. ;)
:ciao:
Io uso Mozilla Firefox, come browser, e, per ottenere quegli indirizzi dei video dal codice delle relative pagine, opero manualmente come segue:
1) clicco sul collegamento al video che mi interessa (deve essere più vecchio di almeno una settimana);
2) quando si apre la pagina, dove viene richiesta l'installazione di SilverLight, clicco in alto a destra sul menu in FireFox su Tools-->Web Developer-->Page Source (più brevemente si può da tastiera premere i tasti: ctrl+u .
3) apertasi la pagina con il codice, basta premere i tasti: ctrl+f per fare la ricerca della parola: videoUrl oppure anche videoUrl_MP4, dai quali prelevare l'indirizzo utile del video.
In vero, il codice HTML/JavaScript della pagina Web lo puoi ottenere anche via Gambas:
Private wv As WebView
Public Sub Form_Open()
With wv = New WebView(Me)
.X = ' dove vuoi tu
.Y = ' dove vuoi tu
.W =' quanto vuoi tu
.H = ' quanto vuoi tu
' Impostiamo la pagina WEB del video da te segnalato:
.Url = "http://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-4e2c5c2f-9de9-4715-8bbc-4ba9bfd18b64.html#p="
End With
End
Public Sub Button1_Click()
With wv
' Mostriamo in console il codice HTML e quello JavaScript della pagina WEB del video da te segnalato:
Print .HTML
End With
End
Ma ora con WebView sei riuscito a vedere il video ?
Solo il 2° URL degli ultimi due che mi hai segnalato.
Nelle prove che ho fatto io prima, prendendo, per es., il seguente URL:
Video.Url = "http://www.rai.tv/dl/replaytv/replaytv.html#ch=1&day=2013-04-04&v=199119&vd=2013-04-04&vc=1"
la pagina web si apre con la solita finestra nera contenente a sua volta la finestrella col messaggio d'invito all'installazione di Siilverlight.
Cliccando col tasto Dx del mouse vedo comparire solamente il messaggio "Reload", mentre dovrebbero comparire diverse scelte fra cui "Visualizza sorgente pagina" che dovrebbe corrispondere a quella ontenente il codice HMTL/JavaScript. É così?
la pagina web si apre con la solita finestra nera contenente a sua volta la finestrella col messaggio d'invito all'installazione di Siilverlight.
Cliccando col tasto Dx del mouse vedo comparire solamente il messaggio "Reload", mentre dovrebbero comparire diverse scelte fra cui "Visualizza sorgente pagina" che dovrebbe corrispondere a quella ontenente il codice HMTL/JavaScript. É così?
Sì.
Tieni conto però, come ho già detto, che se il video ha meno di una settimana, non è ancora presente la variabile JavaScript: var contenente l'indirizzo utile per essere visto con l'oggetto WebView.
Tieni conto anche, da quel che ho potuto notare, che gli indirizzi dei video, creati molti anni fa, non iniziano con http://, bensì con mms:// . In tal caso, i video, collegati con tali indirizzi, non sembrano essere visibili mediante WebView. :-\
Esempio pratico di video realizzato nel 2007:
var videoURL = "mms://rntlivewm.rai.it/raitre/screensaver/screen_110307_paliedispari_08.wmv";
Proporrei ad ogni modo un codice come il seguente, avendo cura di attivare anche i Componenti gb.net e gb.net.curl :
Private http As New HttpClient As "http"
Private dati As String
Private ss As String[]
Public Sub Form_Open()
Dim url As String
url = "http://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-fa988f53-ff53-48f1-baa5-391653ace125.html"
With http
.URL = url
.Timeout = 15
.Get()
End With
Print "Lettura dati...\n"
End
Public Sub http_Read()
Dim buf As String
If Lof(http) Then
Read #http, buf, Lof(http)
dati &= buf
Endif
End
Public Sub http_Finished()
ss = Scan(dati, "*<meta name=\"videourl\" content=\"*\"*")
If (Left(ss[1], 2) = "//") Then ss[1] = "http:" & ss[1]
If (Left(ss[1], 3) = "mms") Then ss[1] = "http" & Right(ss[1], Len(ss[1]) - 3)
Print "Lettura dati terminata."
http.Close
End
Public Sub Button1_Click()
WebSettings[WebSettings.PluginsEnabled] = True
WebView1.Url = ss[1]
End
Riguardo invece ai video memorizzati nel formato .wmv, riconoscibili in quanto nella rispettiva pagina della RAI appare eventualmente l'avviso della necessità di installare "Silverlight" della Microsoft, come ad esempio questo caso:
http://www.rai.tv/dl/RaiTV/programmi/media/ContentItem-c3ecc29c-43be-4cfa-8f84-3c21f7ad93eb.html
per poterli vedere procedere come segue:
- cliccare con il tasto destro del mouse sulla pagina e scegliere "View Page Info"
- nella finestra, che appare, in "General" nel riquadro inferiore copiare l'url indicata nella voce: videourl
- aprire il programma Banshee ed inserire l'url, prima copiata, in: Multimediale --> Apri posizione...