2013-06-06 3 views
0

J'utilise ce qui suit sur une page de sorte que lorsque l'utilisateur change le volume, il est connu pour visionnages vidéo suivantes -Pourquoi video.js interfère avec la balise vidéo html5 vidéo « coupé »

<video class="video-js vjs-default-skin" controls preload="none" id="video1" data-setup="{}" onvolumechange="setVolume(this.volume,this.muted)"> 

setVolume appelle une fonction qui fait le stockage et la récupération des niveaux de volume.

Si je

data-setup="{}" onvolumechange="setVolume(this.volume)" 

les niveaux de volume sont mémorisés à l'exception si le bouton de mise en sourdine. Je ne peux omettre données-setup = « {} » et il fonctionnera de la même

Le problème que j'ai est quand j'utilise les éléments suivants

data-setup="{}" onvolumechange="setVolume(this.volume,this.muted)" 

le volume est mémorisé mais mise en sourdine ne se souvient, En fait, après un rafraîchissement de la page, le volume est réglé sur 100%. Mais si j'omets data-setup = "{}" alors l'inhibition est mémorisée et fonctionne correctement.

Il semble évident que le data-setup = "{}" est à l'origine de ce problème. Alors pourquoi est-ce que ça marche, qu'est-ce qui se passe dans video.js et comment je travaille autour de ça?

+0

Encore un autre problème que je rencontre avec video.js http://stackoverflow.com/questions/16957051/how-to-make-localstorage-work-in-opera/16959537?noredirect=1#16959537 –

Répondre

0

a trouvé le problème. Mon script devait être accroché dans la fonction video.js prête d'abord, comme si

videojs("video1").ready(function(){ 
    var myPlayer = this; 
    getVolume(myPlayer); 

}); 

puis dans une fonction setVolume vous devez utiliser myPlayer.muted (true); au lieu de l'API vidéo html5 normale myPlayer.muted = true;

+0

Heureux vous ont été en mesure de le comprendre. – heff