2012-06-01 3 views
22

Cela a été de me tuer toute la journée, mais je ne suis pas sûr de savoir comment obtenir un lecteur vidéo html5 travailler sans les contrôles natifs.Vidéo iPad html5 sans contrôles?

Je ne veux pas de contrôle quoi que ce soit mais si je ne les inclue pas, la vidéo ne semble pas vouloir jouer, même si j'ajoute du javascript ci-dessous en essayant de le forcer à jouer, ça marche sur iPhone et plusieurs navigateurs, mais pas l'iPad qui est étrange, une idée?

Voici quelques balises si ça aide!

<video src="video.mp4" id="video" poster="image.jpg" onclick="this.play();"/></video> 

$('#video').click(function(){ 
    document.getElementById('video').play(); 
}); 

Répondre

13

iOS ne prend pas en charge l'attribut autoplay de la balise vidéo. Il semblerait également que vous ne pouvez pas utiliser jQuery pour se lier à un événement de clic de l'élément vidéo (voir fiddle).

Une solution consiste à positionner un div invisible sur l'élément vidéo et de lier le clic qui joue la vidéo pour que (voir fiddle):

HTML:

<div id="video-overlay"></div> 
<video id="video" width="400" height="300"> 
     <source id='mp4' 
     src="http://media.w3.org/2010/05/sintel/trailer.mp4" 
     type='video/mp4'> 
     <source id='webm' 
     src="http://media.w3.org/2010/05/sintel/trailer.webm" 
     type='video/webm'> 
     <source id='ogv' 
     src="http://media.w3.org/2010/05/sintel/trailer.ogv" 
     type='video/ogg'> 
</video> 

CSS:

#video { border: 1px solid black; } 
#video-overlay { position: absolute; width: 400px; height: 300px; z-index: 999; } 

jQuery:

$('#video-overlay').click(function(){ 
    document.getElementById('video').play(); 
}); 
+0

Merci pour la réponse claire, je vais donner un spin et revenir après;)) – user1370288

+0

A travaillé un charme. – user1370288

8

De par sa conception vous ne pouvez pas la vidéo autoplay, mais il est assez simple de supprimer les contrôles après la lecture a commencé, que je devine est l'effet que vous voulez vraiment:

<video id="video" src="video.mp4" poster="image.jpg" preload="auto" onplaying="this.controls=false"/></video> 
+0

Je ne sais pas si le 'preload =" auto "' fait quelque chose ou pas sur un iPad, mais ça ne fait pas de mal. – Doin

+0

Cela a résolu mes problèmes! –

+0

Cela a fonctionné pour moi et je peux même utiliser jQuery pour ajouter dynamiquement 'onplaying' prop à l'étiquette si quelqu'un utilise des plug-ins de lecteur vidéo qui cache balise' Vidéo' –

3

Le meilleur que je peux faire est de lire la vidéo dès que l'utilisateur touche l'écran pour faire quelque chose, même faire défiler la page.

function playVideoNow(e) 
{ 
    document.getElementById('video').play(); 
    document.removeEventListener('touchstart', playVideoNow); 
} 

document.addEventListener('touchstart', playVideoNow, false); 
5

J'ai utilisé cette

<video id="video" controls=“true” width="300" height="250" poster="gray30x25.gif" autoplay onplaying="this.controls=false"> 

controls=“true” - fait fonctionner sur iPad

autoplay - rend ce autoplay sauf mobile

onplaying="this.controls=false" - supprime les contrôles lors de la lecture

Il autoplays o n ordinateur portable, et fonctionne sur iPad!
merci Doin

Questions connexes