2010-04-08 5 views
18

Je travaille actuellement sur un lecteur vidéo HTML5, je l'ai bien travailler partout, sauf sur l'iPad. Fondamentalement, je peux tout contrôler, à l'exception du son, j'ai un bouton mute, il fonctionne très bien sur Google Chrome, Firefox 3.6 et Safari sous Mac OS, mais sur l'iPad, peu importe quelle valeur que je mets dans video.volume, il n'y a pas de changement événement.HTML5 Video Volume

Quelqu'un at-il que cela fonctionne correctement?

Voici mon code HTML:

<video src="video_url" width="608" height="476" autobuffer="autobuffer" id="html5-player" preload> 
    Your browser doesn't support HTML5. 
</video 

Et voici le Javascript:

var muted = false; 
$j('.player-mute').click(function(){ 
    if(muted) { 
     videoPlayer.volume = 1; 
     muted = false; 
    } else { 
     videoPlayer.volume = 0; 
     muted = true; 
    } 
}); 
+0

Pouvez-vous poster une version simplifiée de votre code (le code html et javascript)? Sans code, il est difficile de savoir ce qui ne va pas. – lostriebo

+0

Le clic est correctement déclenché, la valeur du volume change, mais le son reste le même sur l'iPad. – Mikushi

+0

Il est un peu un long shot, mais est-il une différence si vous spécifiez double (à savoir, 'videoPlayer.volume = 1,0;' 'ou videoPlayer.volume = 0,0;')? – lostriebo

Répondre

3

Si vous lisez la documentation vidéo html5 iPad il est dit que seul l'utilisateur de l'appareil peut démarrer la vidéo et changer le volume.

+0

S'il est déclenché par un événement click, cela devrait fonctionner, non? Je veux dire que cela fonctionne pour la lecture vidéo(), j'ai un événement de clic lié sur mon bouton de lecture et je n'ai aucun problème, alors que le bouton mute ne fonctionne pas, peut-être parce que c'est une propriété que je modifie? – Mikushi

18

La volume propriété sur les appareils iOS est en lecture seule selon Apple's documentation:

Sur les appareils iOS, le niveau audio est toujours sous le contrôle physique de l'utilisateur. La propriété volume n'est pas configurable en JavaScript. La lecture de la propriété volume retourne toujours 1.

+1

Lien HTML direct vers la page iOS: https://developer.apple.com/library/safari/documentation/AudioVideo/Conceptual/Using_HTML5_Audio_Video/Device-SpecificConsiderations/Device-SpecificConsiderations.html –

-4
var muted = false; 
$j('.player-mute').click(function(){ 
if(muted) { 
    videoPlayer.volume(1); 
    muted = false; 
} else { 
    videoPlayer.volume(0); 
    muted = true; 
} 
}); 

utilisation comme la fonction

+0

L'attribut de volume de l'élément vidéo n'est pas une fonction . – mwm