2013-05-07 16 views
15

Sto utilizzando una webView nella mia app per Android per caricare il player iframe di YouTube e riprodurre automaticamente i video. Funziona perfettamente su Samsung Galaxy S2 & S3, ma quando viene eseguito su Samsung Galaxy S4, risulta sempre in uno schermo grigio quando si tenta di riprodurre automaticamente.L'incorporamento di iframe di YouTube non può essere riprodotto automaticamente su Android

Su Galaxy S4, funziona senza autoplay, richiede l'intervento dell'utente (clic) per iniziare a giocare (Non è successo nulla se si aggiunge "autoplay: 1" in playerVars).

Ho provato a chiamare player.playVideo() in onPlayerReady(), si è tradotto in questa schermata grigia:

enter image description here

Il LogCat mostra anche un messaggio di errore strano:

E/IMGSRV(17004): :0: GetPTLAFormat: Invalid format 

quando non è possibile riprodurre automaticamente. Non so di cosa tratta questo messaggio; L'ho cercato su Google e non ho trovato nulla.

Ecco il codice di Android di WebView:

WebView wv = (WebView) findViewById(R.id.webview); 
WebSettings websettings = wv.getSettings(); 
websettings.setJavaScriptEnabled(true); 
websettings.setDomStorageEnabled(true); 
websettings.setDatabaseEnabled(true); 
wv.loadUrl(strUrl); 
wv.setWebViewClient(new WebViewClient()); 
wv.setWebChromeClient(new WebChromeClient()); 
wv.setPadding(0, 0, 0, 0); 
wv.getSettings().setLoadWithOverviewMode(true); 
wv.getSettings().setUseWideViewPort(true); 
wv.setVerticalScrollBarEnabled(false); 
wv.setHorizontalScrollBarEnabled(false); 

Si tratta di un problema noto o se c'è qualche soluzione per riprodurre automaticamente il video? Grazie!

+0

Invece di un iFrame, hai controllato https://developers.google.com/youtube/android/player/? – FunkTheMonk

+0

Il motivo per cui non vogliamo utilizzare questo player Android Youtube è perché non è consentito alcun overlay. –

risposta

12

Penso che disabilitare la riproduzione automatica stia diventando uno "standard".

A proposito, si potrebbe provare this

EDIT:

Come il link è morto, l'ho trovato in https://lumi.do/p/04x626i1ngvht/how-to-autoplay-html5-video-on-android:

Come "autoplay" HTML5 video su Android
Scritto da Mathias Desloges in Labs il 19/05/11

Hai mai provato a giocare con il nuovo tag video HTML5 su un dispositivo Android?
Abbiamo ed è qui un problema di fondo che abbiamo affrontato.
Impostiamo il contesto, vogliamo che il nostro video inizi a essere riprodotto subito dopo il caricamento della pagina.
In base alle specifiche HTML5, dovremmo utilizzare l'attributo "autoplay", ma non ha alcun effetto su Android. Così abbiamo provato con un piccolo script tha chiamare la funzione di riproduzione dopo che la pagina è stata caricata:

function callback() { document.querySelector('video').play(); } 
window.addEventListener("load", callback, false); 

Questo riproduce bene il comportamento dell'attributo "autoplay" di un classico browser desktop , ma su un browser Android non funziona.
noi abbiamo tentato di collegare la funzione "callback()" precedentemente definita a un evento di clic su un nodo arbitrario e il video inizia a suonare correttamente "su clic" (comportamento normale). E mentre continuiamo a lavorare sul codice html , abbiamo trovato la soluzione!

Non chiedetemi perché, ma dopo l'aggiunta del "manifesto" attribuiscono funziona!

+0

Hai provato il link che ho fornito alla fine della risposta? –

+0

come aggiungerebbe l'attributo 'poster' al video nella visualizzazione Web? – chopchop

+1

Il collegamento è morto. In futuro, si prega di citare anche le parti più vitali degli articoli a cui ci si collega per evitare la perdita di informazioni. – DarkDust

2

Credo che questo sia un sintomo dei produttori di sistemi operativi che diventano più restrittivi nel non consentire la riproduzione automatica dei video a causa di problemi di larghezza di banda. Questo è stato un problema su iOS per qualche tempo in cui qualsiasi JavaScript call to play() fallirà a meno che l'utente non abbia eseguito prima un'azione come un clic. Questo è probabilmente quello che sta succedendo nel tuo caso.

2

Come risposta here Credo non solo limitando la riproduzione automatica ma qualsiasi evento automatico. Per me è stata una transizione di pagina in jquerymobile che è stata attivata quando Cordova aveva caricato. L'ho commutato per essere attivato da un clic pari e questo ha risolto il problema.

Problemi correlati