Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1

    Problema control bar HTML5 video in Safari per iOS

    Ciao ragazzi, ho scritto un player in javascript per iOS 12 e ho un quesito: praticamente ho introdotto la possibilità di fare lo swipe per cambiare video in una playlist e funziona perfettamente! Unico problema è che mi prende questo evento anche quando faccio lo swipe sulla control bar (a esempio per scorrere il video tramite progressbar) e vorrei che questo non succedesse... c'è un modo per evitare ciò?

    Questo il codice per lo swipe:

    codice:
    document.addEventListener('touchstart', handleTouchStart, false);
    document.addEventListener('touchmove', handleTouchMove, false);
    
    function handleTouchStart(evt) {
        const firstTouch = getTouches(evt)[0];
        xDown = firstTouch.clientX;
        yDown = firstTouch.clientY;
    
        if (player.paused)
            player.play();
        else
            player.pause();
    }
    
    function handleTouchMove(evt) {
        if (!xDown || !yDown) {
            return;
        }
    
        var xUp = evt.touches[0].clientX;
        var yUp = evt.touches[0].clientY;
    
        var xDiff = xDown - xUp;
        var yDiff = yDown - yUp;
    
        if (Math.abs(xDiff) > Math.abs(yDiff)) {
            if (xDiff > 0) {
                /* left swipe */
                playVideo(count++);
            } else {
                /* right swipe */
                playVideo(count--);
            }
        } else {
            if (yDiff > 0) {
                /* up swipe */
            } else {
                /* down swipe */
            }
        }
    
        xDown = null;
        yDown = null;
    
        player.play(); //TO PREVENT PAUSE ON SWIPE
    }
    Grazie!

  2. #2
    All'interno di handleTouchStart(), in evt.target, dovresti avere l'elemento "toccato".
    Dovresti verificare che quell'elemento non sia la progress bar.

  3. #3
    Grazie per il consiglio ma purtroppo ovunque io vada a premere, evt.target risulta sempre: "[object HTMLVideoElement]"

  4. #4
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    All'interno di handleTouchStart(), in evt.target, dovresti avere l'elemento "toccato".
    Dovresti verificare che quell'elemento non sia la progress bar.
    Grazie per il consiglio ma purtroppo ovunque io vada a premere, evt.target risulta sempre: "[object HTMLVideoElement]"

    PS: non so come cancellare i miei messaggi, per quello ce n'è uno duplicato appena qui sopra, senza quote
    Ultima modifica di Stiff91x; 21-01-2019 a 12:10

  5. #5
    Quote Originariamente inviata da Stiff91x Visualizza il messaggio
    Grazie per il consiglio ma purtroppo ovunque io vada a premere, evt.target risulta sempre: "[object HTMLVideoElement]"

    PS: non so come cancellare i miei messaggi, per quello ce n'è uno duplicato appena qui sopra, senza quote
    Gli utenti non possono cancellare i messaggi, comunque non preoccuparti per il duplicato.

    Potresti provare a sovrapporre un div al tag <video> posizionandolo e dimensionandolo di modo che non copra la progress bar ed i comandi.
    poi gestiresti gli swipe solo su quel div.

    P.S.: lo swipe è applicato all'intero documento?

  6. #6
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    Gli utenti non possono cancellare i messaggi, comunque non preoccuparti per il duplicato.

    Potresti provare a sovrapporre un div al tag <video> posizionandolo e dimensionandolo di modo che non copra la progress bar ed i comandi.
    poi gestiresti gli swipe solo su quel div.

    P.S.: lo swipe è applicato all'intero documento?
    Ok, comunque lo swipe si, dovrebbe essere applicato al documento. Il problema del div sovrapposto è che io devo lavorare su risoluzioni mobile diverse e non ho le proporzioni o % della progressbar. Per adesso me la sto cavando con: "yDown < (screen.height / 1.5)" anche se non è proprio la soluzione più elegante ed efficiente possibile

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.