2010-06-22 14 views
23

Ho una pagina Web per l'iPhone che utilizza i tag video HTML5. Sull'iPhone, tali video incorporati vengono riprodotti nel lettore nativo. Ho voluto verificare se il video era finita e quando l'utente aveva respinto il video con il pulsante "Done". Inizialmente, ho provato questo:Usando eventi video html5 su iPhone, come faccio a dire "Fatto" clic su un pulsante da una semplice pausa?

var video = $("#someVideo").get(0);   
video.addEventListener('ended', myFunction); 

Ma che ha sparato solo quando il video è stato permesso di finire. Dopo aver giocato con altri eventi (sospensione, in stallo, in attesa) ho scoperto che il pulsante "Fatto" attiva un evento di "pausa". Tuttavia, quando aggiungo questo:

video.addEventListener('pause', myFunction); 

il mio codice è chiamato sia dal pulsante "Done" e quando l'utente tocca il pulsante di pausa nei controlli di riproduzione. Il secondo caso è indesiderabile; Voglio solo il primo caso, ma gli eventi non sembrano darmi abbastanza informazioni.

Qualcuno sa di un modo per dire quando l'utente ha colpito il pulsante "Done" nel lettore iPhone (contro semplice pausa)?

risposta

20

Basta controllare il booleano webkitDisplayingFullscreen nella vostra funzione di pausa. Premendo Fine o Pausa si attiva l'evento di pausa, ma Done fa un piccolo extra come un'uscita dalla modalità a schermo intero. Fare questo controllo ti aiuterà a distinguere le 2 pressioni dei pulsanti. Alcuni esempi di codice qui sotto.

<script> 
var html5Video = function() { 
    return { 
     init: function() { 
      var video = document.getElementsByTagName('video')[0]; 
      video.addEventListener('ended', endVideo, false); 
      video.addEventListener('pause', pauseVideo, false); 
     } 
    }; 
}(); 

function endVideo() { 
    alert("video ended"); 
} 

function pauseVideo() { 
    var video = document.getElementsByTagName('video')[0]; 
    if (!video.webkitDisplayingFullscreen) 
     endVideo(); 
} 

html5Video.init(); 

</script> 
+0

tieni presente che questo attributo è disponibile solo nella recente versione di iOS. –

+0

Questo funziona se si gioca il video e quindi premere 'Fatto' mentre il video è in riproduzione - ma se si mette in pausa il video e quindi premere 'Fatto' non fa scattare ... EDIT: visto c'è una domanda di follow-up: http://stackoverflow.com/questions/11112150/with-an-html5-video-element-on-the-iphone-how-can-i-detect-the-difference-betwe?lq=1 –

Problemi correlati