Domanda Usando eventi video html5 su iPhone, come faccio a dire clic su "Fine" da una semplice pausa?


Ho una pagina Web per l'iPhone che utilizza i tag video HTML5. Sull'iPhone, tali video incorporati vengono riprodotti nel lettore nativo. Volevo controllare quando il video era finito e quando l'utente ha chiuso il video con il pulsante "Fatto". Inizialmente, ho provato questo:

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

Ma è stato attivato solo quando il video è stato autorizzato a terminare. 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 "Fatto" 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 premuto il pulsante "Fatto" nel lettore iPhone (rispetto alla semplice pausa)?


23
2018-06-22 22:15


origine


risposte:


Basta controllare il webkitDisplayingFullscreen boolean nella tua 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>

20
2018-03-10 13:20



Questo è quello di cui hai bisogno:

yourplayer.addEventListener('webkitendfullscreen', onPlayerExitFullscreen, false);

E viceversa

yourplayer.addEventListener('webkitbeginfullscreen', onPlayerEnterFullscreen, false);

Ecco un'altra risposta alla tua domanda che ho trovato: Come capire quando un video player HTML5 entra nella modalità a schermo intero su iOS / iPad?


20
2017-11-16 02:13



C'è un evento chiamato "finito" che probabilmente dovresti usare, vedi http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#event-media-ended .


-2
2018-06-23 14:44