Lecteur video flash + javascript

Résolu
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010 - 20 mars 2010 à 11:56
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010 - 23 mars 2010 à 11:08
Bonjour,

J'ai cherché mais n'ai pas trouvé de réponse à mon problème...

J'ai sur mon site une série d'images ; j'aimerais que pour chacune d'entre elles, en cliquant dessus une vidéo différente s'ouvre.
J'avais réussi avec un lecteur WMP, mais je n'y arrive pas avec un lecteur flash (le lecteur "maxi" de flv-player.net); voici mon code :

<head>

<script langage="javascript">
function marche(video)
{
document.getElementById("lecteur").innerHTML='<object type="application/x-shockwave-flash" data="player_flv_maxi.swf" width="320" height="240"></object>'
}
</script>

</head>








Sous firefox ça fonctionne très bien, mais sous Internet Explorer (7) il ne m'affiche qu'un petit carré noir de quelques pixels de large à la place du lecteur ; d'ailleurs, en lui demandant le contenu du div "lecteur", il m'affiche <object type="application/x-shockwave-flash" width="320" height="240" data="player_flv_maxi.swf"></object> (il a foutu tous les paramètres à la poubelle quoi... alors que FF garde tout)

Merci d'avance de votre aide ! (c'est la première fois que je poste ici, en général je trouve toujours qqu'un dans la même galère que moi, avec la réponse de son sauveur...)

10 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
22 mars 2010 à 19:00
Bonjour,
il y a surement une explication logique !!!!!
un paliatif, pourquoi ne pas mettre dans un DIV display:hidden et de l'afficher sur le onclick...

voir peut être coté forum FLASH pour l'explication.

;O)
3
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
20 mars 2010 à 13:45
euh pardon, c'est plutôt

value="flv='+video+'"
et non pas
value="+video+"

pour que ça marche sous FF ; mais ça ne marche pas sous I.E....
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
20 mars 2010 à 18:09
Bonjour,
il te faut une structure du type
<object codebase =...........>
  
  
  
</object>

pour être compatible IE et FF

;O)
0
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
21 mars 2010 à 10:59
merci beaucoup de ta réponse, mais j'ai essayé avec le code donné en cas de problème sur le site du lecteur:
<object id="monFlash" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" type="application/x-shockwave-flash" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="320" height="240">



</object>


Ce code marche très bien lorsqu'il est tapé directement en html - le précédent aussi, pourtant sans embed - mais dès que je demande à javascript de l'écrire dans un div (grâce à document.getElementById("lecteur").innerHTML), Internet Explorer ne me garde aucun des "PARAM" que je lui ai donné ; cette fois-ci par contre, il m'en affiche toute une série que je ne lui ai pas demandé, mais aucun qui contienne le nom de ma vidéo :
<OBJECT id=monFlash codeBase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0 type=application/x-shockwave-flash height=240 width=320 classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000>

























</OBJECT>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
21 mars 2010 à 11:52
Même avec le oublié, aucun effet sous I.E.. Je craque...
0
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
21 mars 2010 à 14:49
J'ai même trouvé le moyen de changer la valeur des paramètres de l'object, mais ça ne sert à rien puisque visiblement ils sont chargés une fois au début et non modifiables après.

En fait, il me faudrait juste trouver le moyen pour que I.E. lise la ligne document.getElementById("lecteur").innerHTML en entier, avec tous les param que je lui indique dedans...

Bon je me parle à moi-même là venez m'aider siouplait !...
0
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
22 mars 2010 à 20:38
MERCI INFINIMENT LE PLANCHISTE !
Tu m'as donné la clef manquante finale !
J'avais essayé avec un "display:none", et ça marchait pas sous i.e. ...

Alors pour les gens qui seraient dans la même galère :

De manière à changer la vidéo du lecteur, je me suis servi d'une fonction de ce dernier, donné sur http://resources.neolao.com/download/flash/components/player_flv_maxi.html (car une balise <object> contenant du flash ne semble pas modifiable après la 1ere lecture, il faut donc agir directement sur le flash, grâce aux fonctions du lecteur)

Mais pour i.e., il FAUT que la balise <object> soit chargée dès le début, en "visibility:hidden" s'il le faut (pour moi oui).

Voilà le script :
<script langage="javascript">
function montre(video) {
document.getElementById("lecteur").style.visibility="visible";
//merci PetoleTeam !
setTimeout("url('"+video+"')",1000);
setTimeout("play()",1500);
//(le setTimeout est nécessaire pour I.E. !)
//sous FF, il suffit d'un url(video) puis d'un play(); mais s'il n'y avait que FF, je ne serais pas là...
}
function url(video) {
document.monFlash.SetVariable("player:jsUrl", video);
}
function play() {
document.monFlash.SetVariable("player:jsPlay", "");
}
</script>




<object id="monFlash" type="application/x-shockwave-flash" data="player_flv_maxi.swf" width="320" height="240">
    
    
</object>



J'essaierai de voir un autre jour si ya moyen de changer la taille, mais ça m'etonnerait vue la prise de tête pour changer l'url de la vidéo...

ENCORE UN GRAND MERCI A TOI PETOLETEAM , tous mes élèves vont être contents de pouvoir enfin lire les vidéos de leur site (il sera bientôt mis à jour ici pour ceux que ça intéressent : http://cinegilles.free.fr )

PS : tu navigues vers où PetoleTeam ?
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
22 mars 2010 à 20:53
1001 excuses il fallait effectivement lire display:none et non hidden, mais si il faut un visibily:hidden la réponse est à moitié juste donc à moitié fausse.

PS: le plus souvent qu'il puisse mettre donné sur LEUCATE
;O)
0
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
23 mars 2010 à 09:08
Heureuse erreur justement, si tu m'avais répondu "display:none", j'aurais laissé tomber puisque j'avais déjà essayé & ça ne marchait pas !

Sur ce, je te souhaite bon vent sur Leucate ! (ya pas souvent pétole là-bas quand même...)
0
stonedbike Messages postés 8 Date d'inscription samedi 6 février 2010 Statut Membre Dernière intervention 23 mars 2010
23 mars 2010 à 11:08
juste un ptit message pour préciser que j'ai été mauvaise langue : ya en fait moyen de changer la taille sans aucun problème ; je l'ai adapté à la résolution de l'écran par ça :

var miniz = 'mini'+image[a].split('.').reverse()[1]+'.jpg';
//ça c'est pasque le nom de mon fichier vidéo (flv) est stocké dans la variable image[a], et que la miniature s'appelle "mini(nom du fichier).jpg"

var imgx = document.getElementById(miniz).width;
var imgy = document.getElementById(miniz).height;
var ecrany = (document.body.clientHeight);

document.getElementById("monFlash").width=ecrany*(imgx/imgy)/1.4;
document.getElementById("monFlash").height=ecrany/1.4;


Si ce n'est pas clair, vous pouvez aller voir le site ; j'espère avoir aidé quelqu'un !
0
Rejoignez-nous