Ho un'app che mostra una pagina HTML5 con un elemento video in una WebView. Mi ci è voluto un po 'per capire come far funzionare il video, ma alla fine sono riuscito a riprodurre il video incorporato in una WebView su un Samsung Galaxy Tab (Android 3.1). Ho usato il seguente codice per il tag video:Intercettazione della richiesta di origine video HTML5 in Android WebView
<video controls poster="img/poster.jpg" height="240" width="360">
<source src="video/BigBuck.m4v">
<source src="video/BigBuck.theora.ogv" type="video/ogg">
<source src="video/BigBuck.webm" type="video/webm">
HTML5 video not supported.
</video>
L'elemento video ha più fonti e ora sto cercando di catturare la sorgente video selezionata (e formato) prima che il video inizia a giocare. Quando faccio clic sul pulsante di riproduzione, vedo una richiesta HTTP per il file video che arriva al server Web in cui sono archiviati i file video, ma non riesco a intercettare questa richiesta sul lato dell'app.
Ho esaminato diversi metodi per vedere se la richiesta per il file video è passata lì, ma non l'ho vista passare in nessuno di essi.
- In
shouldOverrideUrlLoading(WebView view, String url)
nel mioWebViewClient
viene passata solo la richiesta iniziale di pagina HTML5. - In
shouldInterceptRequest (WebView view, String url)
nel mioWebViewClient
vedo solo passare la richiesta iniziale di pagina HTML5 e una richiesta per l'immagine del poster video, ma non per il file video. onShowCustomView(View view, CustomViewCallback callback)
nel mioWebChromeClient
viene chiamato solo quando faccio clic sul pulsante di controllo a schermo intero sulla pagina HTML5 quando il video è già in riproduzione, ma non quando faccio clic sul pulsante di riproduzione. (Che cosa è in realtà lo scopo di questo metodo?)
Qualcuno ha un suggerimento per un altro metodo in cui posso catturare la richiesta per il file video o qualcuno mi può spiegare che cosa realmente accade quando si fa clic sul pulsante di riproduzione su l'elemento video?
Puoi pubblicare il codice che utilizzi per il tag video. Recentemente mi sono occupata di questo e 'shouldOverrideUrlLoading (vista WebView, url String)' ha funzionato per me (in Gingerbread però). –