Élément vidéo HTML5 sur iPad ne déclenche pas les événements onclick ou touchstart?
Je suis en train de l'attacher à certains événements d'une Vidéo HTML5 élément à l'intérieur de mon iPad web app, mais ils ne semblent pas être de tir? J'ai testé cette fois sur l'appareil et dans le simulateur et obtenir les mêmes résultats. Les événements toutefois, pour le onclick au moins) beau travail de bureau Safari. J'ai aussi essayé la permutation de l'élément vidéo pour un div et les événements feu amende? Quelqu'un d'autre a rencontré ce et avez une idée pour contourner?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Test video swipe</title>
</head>
<body>
<video src='somevid.mp4' id='currentlyPlaying' width='984' height='628' style='background-color:#000;' controls='controls'></video>
<script>
var theVid = document.getElementById("currentlyPlaying");
theVid.addEventListener('touchstart', function(e){
e.preventDefault();
console.log("touchstart");
}, false);
theVid.addEventListener('click', function(e){
e.preventDefault();
console.log("click");
}, false);
theVid.addEventListener('touchmove', function(e){
console.log("touchmove");
}, false);
theVid.addEventListener('touchend', function(e){
console.log("touchend");
}, false);
theVid.addEventListener('touchcancel', function(e){
console.log("touchcancel");
}, false);
</script>
</body>
</html>
source d'informationauteur ad rees
Vous devez vous connecter pour publier un commentaire.
L'élément vidéo, sur l'iPad, va avaler les événements si vous utilisez l'attribut de contrôles. Vous devez fournir vos propres contrôles si vous souhaitez que l'élément de répondre à des événements tactiles.
De ma propre plutôt les expériences douloureuses au cours des deux dernières semaines, je peux commencer cette liste (au moins pour l'iPad 3.2). Certains de ces "caractéristiques" peut être documentée, mais la phrase est souvent difficile à trouver.
volume
propriété est ignorée (vous pouvez le régler, et il apparaîtra à changer, mais le volume sur l'appareil ne sera pas affecté).currentTime
propriété est en lecture seule. Ma solution pour cela est d'appelerload()
qui au moins me permet de réinitialiser le début du clip.onended
cas de ne pas poster de manière fiable, à moins que les contrôles sont visibles. Ma solution pour cela est de surveiller latimeupdate
de l'événement et de comparer lescurrentTime
à laduration
autobuffer
etautoplay
sont désactivés.<video>
tag - eg.opacity
etz-index
les deux semblent inefficaces, ce qui signifie que vous ne peut obscurcir ou de masquer une vidéo. Vous pouvez définirdisplay:none
mais qui est très abrupte.Comme je l'ai dit, ce n'est probablement pas une liste exhaustive, et j'avais bienvenue ajouts ou des corrections.
(Aussi, après beaucoup recherche sur google, j'ai trouvé une liste ici des maigres sous-ensemble de l'intervalle QT Plugin méthodes et des propriétés qui sont pris en charge sur le navigateur Safari Mobile).