2012-12-05 22 views
5

Esiste un work-around per Android Gingerbread, per rilevare quando un utente è uscito dalla visualizzazione di un video HTML5 nel browser? In pratica i telefoni Android lanciano il video HTML5 a schermo intero (come per l'iPhone) webkitendfullscreen o webkitfullscreenchange non si attiva su Android. Quindi non è in grado di rilevare l'uscita di schermo intero prima della fine della riproduzione del video.Android 2.X HTML5 Video fine schermo intero

Uno dei commenti di questo post dice che non è supportato in Android 2.3: How can I catch event ExitFullScreen of a video?

chiunque a trovare un risolvere o work-around a questo?

+0

Stai usando PhoneGap o qualsiasi altra libreria? – closure

+0

La mia risposta qui potrebbe aiutarti: http://stackoverflow.com/questions/11576362/embedded-youtube-video-in-webview-does-not-respect-full-screen-settings/13005135#13005135 –

+0

Questo può essere una soluzione: http://stackoverflow.com/questions/13089464/detect-exit-fullscreen-html-video –

risposta

1

Non c'è molto da lavorare in termini di eventi per video HTML5 su Android 2.x ... tuttavia, su Android 2.x il video verrà sempre visualizzato a schermo intero, quindi si fermerà automaticamente su vicino. Sfortunatamente non si ottiene un evento pause come altri browser, ma si ha accesso a due cose:

1) L'evento timeupdate, che fornisce dati più volte al secondo durante la riproduzione del video.

2) La proprietà currentTime dell'elemento video.

Quindi, mentre questa soluzione è un po 'brutta, è possibile eseguire il polling della proprietà currentTime regolarmente dopo l'inizio della riproduzione del video, e se è uguale per più di 500 ms, considera il video in pausa (e quindi lasciato la modalità a schermo intero). Potresti anche dedurre che il video è stato messo in pausa dall'assenza di un evento timeupdate in un determinato periodo di tempo. Questo ha il potenziale di provocare il ridisegno della pagina solo da un utente che interrompe il video ... ma sapendo che puoi trovare un modo per farlo in modo sicuro.

Mi rendo conto che questa è una domanda vecchia, ma spero che questo aiuti qualcuno!

Problemi correlati