Question

Pour une raison quelconque, je suis sûr que les gens de DivX pensent est important, il n'y a aucun moyen simple pour empêcher leur plug-in de remplacer tous les éléments vidéo sur votre page avec leur fantaisie logo.

Ce que je dois est une solution de contournement pour cela, dit le plugin pour sauter quelques vidéos, à savoir ne pas les remplacer avec leur contenu jouable.

Était-ce utile?

La solution

Je suis cela en mettant une balise vidéo HTML 5 vide, puis mettre dans les balises de source vidéo dans une fonction JavaScript dans le corps événement onload. La vidéo est ensuite dans le lecteur HTML 5 normal et pas le lecteur DivX Web.

par exemple. Cela donnerait au lecteur DivX:

<video width="320" height="240" controls="controls">
  <source src="movie.mp4" type="video/mp4" />
</video>

Mais cela donnerait le code html normale 5 lecteur:

    <head>
    <script type="text/javascript">
    function changevid() {
       document.getElementById('vid').innerHTML = '<source src="inc/videos/sample1.mp4" type="video/mp4" />';
       document.getElementById('vid').load();
    }
    </script>
    </head>
    <body onload="changevid()">

       <video id="vid" width="800" height="450" controls="controls">    
       </video>

    </body>

Autres conseils

A ce moment, il n'y a pas d'API ou des moyens pour bloquer le plugin divx de remplacer des éléments vidéo avec leur espace réservé. : - (

i commencé reverse engineering le plugin divx pour savoir ce qui peut être fait pour pirater un chemin dans le désactiver. Un exemple, y compris le code source complet du-plugin divx, se trouve ici: http://jsfiddle.net/ z4JPB / 1 /

Il me semble actuellement qu'une solution possible pourrait fonctionner comme ceci:

  • créer un « propre » sauvegarde des méthodes appendChild, replaceChild et insertBefore -. Cela doit se produire avant que le script de contenu de l'extension de chrome est exécuté
  • le script de contenu exécutera, remplace les méthodes mentionnées ci-dessus et ajoute l'événement-auditeurs aux événements DOMNodeInsertedIntoDocument et DOMNodeInserted
  • après, l'événement-auditeurs peuvent être enlevés et les DOM-méthodes restauré d'origine. Vous devriez maintenant être en mesure de remplacer les éléments embed créés par le plug-in avec les éléments vidéo-

Il semble que le plugin remplace uniquement la vidéo quand il y a des éléments src dans la balise video. Pour moi, il a travaillé en ajoutant d'abord la balise video, puis - dans un second fil - ajouter les balises src. Cependant, ce travail dans IE, mais Indifférent Fume IE n'a eu aucun problème avec une insertion de la balise vidéo complète à la fois.

code suivant a fonctionné pour moi dans tous les navigateurs (bien sûr, jQuery nécessaire):

var $container = $('video_container');
var video = 'my-movie';
var videoSrc = '<source src="video/'+video+'.mp4" type="video/mp4"></source>' +
    '<source src="video/'+video+'.webm" type="video/webm"></source>' +
    '<source src="video/'+video+'.ogv" type="video/ogg"></source>';

if(!$.browser.msie) {
    $container.html('<video autoplay loop></video>');
    // this timeout avoids divx player to be triggered
    setTimeout(function() {
        $container.find('video').html(videoSrc);
    }, 50);
}
else {
    // IE has no problem with divx player, so we add the src in the same thread
    $container.html('<video autoplay loop>' + videoSrc + '</video>');
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top