[RESOLU - XHTML] - Balise Object et.... vidéos -_-

- Balise Object et.... vidéos -_- [RESOLU - XHTML] - HTML/CSS - Programmation

Marsh Posté le 30-03-2005 à 22:09:44    

Bonsoir !!!
Ca va faire bientot 3h que j'essai de trouver une méthode pour insérer un .mov qui fonctionne dans IE 6.0 et Firefox ...
Pour faire plaisir au W3C il faut utiliser la balise <object> et les divers params .... mais ça marche un coup sur l'un et un coup sur l'autre...J'ai trouvé un hack qui devrait normalement tout faire marcher mais il est issu du code source d'une page et j'ai pas d'explication complémentaire et je n'arrive pas à le faire marcher correctement ...
Voila les codes pour info :
1/ Marche entiérement sous Firefox mais sous IE je n'arrive pas à afficher le reste du contenu de la page  

Code :
  1. <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"             codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="50%" height="50%">
  2.   <param name="src" value="videos/test.mov">
  3.   <param name="autoplay" value="true">
  4.   <param name="controller" value="false">
  5.  <!--[if !IE]> <-->
  6.  <object data="videos/test.mov" width="50%" height="50%" type="video/quicktime">
  7.   <param name="src" value="videos/test.mov">
  8.   <param name="autoplay" value="true">
  9.   <param name="controller" value="false">
  10.   <param name="pluginurl" value="http://www.apple.com/qtactivex/qtplugin.cab">
  11.   FAIL (the browser should render some flash content, not this).
  12.  </object>
  13.  <!--> <![endif]-->


 
 
2/ Marche nickel sous IE (j'arrive bien à afficher le reste de la page) mais pas du tout sous Firefox :

Code :
  1. <object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" width="50%" height="50%">
  2.   <param name="src" value="videos/test.mov">
  3.   <param name="autoplay" value="true">
  4.   <param name="controller" value="false">
  5.  </object>


 
Des avis, des pistes ????? Merci par avance pour vos réponses  :pt1cable:


Message édité par belay le 30-03-2005 à 23:30:09
Reply

Marsh Posté le 30-03-2005 à 22:09:44   

Reply

Marsh Posté le 30-03-2005 à 22:20:27    

Peut-être qu'il lui faudrait l'attribut type, avec le type MIME correspondant au format couictime

Reply

Marsh Posté le 30-03-2005 à 22:37:17    

Euh il y ait dejà :

Citation :


#         <!--[if !IE]> <-->
#         <object data="videos/test.mov" width="50%" height="50%" type="video/quicktime">


 
Mais va savoir pourquoi ça marche maintenant...
J'ai touché à rien...J'ai rebooté et vider le cache de mes deux navigateurs bah ç marche ....
Comprend rien  :pt1cable:
 
Bref tant mieux, je v chercher les infos pour de l'avi et du wmv ;)
Merci de ton aide en tt k ...
 
PS: si tu as des informations sur le fonctionnement de ce hack je suis preneur parce que j'aime pas trop insérer du code que je ne comprend pas :D

Reply

Marsh Posté le 30-03-2005 à 22:37:54    

Oula, faut faire gaffe à ça :D
 
Ce sont des commentaires conditionnels...

Reply

Marsh Posté le 30-03-2005 à 22:54:03    

En gros on peu faire des commentaires conditionnels ou c'est l'exploitation d'un vieux bugs de IE .... Je c que ça fait pas trés propre mais apparement les deux nav n'interprete pas la balise <object> de la mm façon (attention moi jsui pas au top du XHTML :D j'utilise une DTD transitionnal :D) donc je dit peu etre une enorme bêtise -_-

Reply

Marsh Posté le 30-03-2005 à 22:56:32    

C'est une fonctionnalité d'IE en fait :)

Reply

Marsh Posté le 30-03-2005 à 23:09:36    

ok ... et l'interet de cette fonctionnalité c'est de permettre des hack xhtml ??? :D :D :D ...
Je viens de me faire une petite fonction php inclue dans le fichier htlm de derrièreles fagots qui me gére tout ça c'est bien pratique :D ... et en plus ..... ça marche ... sur les deux navigateurs ^_^ ... qui a dit que le devellopement multi-nav était compliqué :)

Reply

Marsh Posté le 30-03-2005 à 23:12:54    

Ouais, avec ça on balance des CSS ou des scripts alternatifs :D Genre IE7

Reply

Marsh Posté le 30-03-2005 à 23:15:14    

ok ok :D ....  
Tu saurai pas par hazard (mais alors vraiment par hazard) à quel endroit je pourrai trouver tout ce qui peu etre classid codebase et liste des param pour différents formats vidéos ?

Reply

Marsh Posté le 30-03-2005 à 23:16:20    

Nope :cry:

Reply

Marsh Posté le 30-03-2005 à 23:16:20   

Reply

Marsh Posté le 30-03-2005 à 23:25:28    

Tant pis merci de tes eclaircissement en tout.... Pour finir...IE c'est pour qd? et ça sera mieux qu'aujourd'hui ou pas ?

Reply

Marsh Posté le 30-03-2005 à 23:26:42    

IE7 version bêta cet été normalement... Pleins d'infos sur le blog officiel de la team IE

Reply

Marsh Posté le 30-03-2005 à 23:29:45    

Thx .... Bon pour finir en beauté j'ai reussi à faire marcher ma fonction ac un avi (du premier coup en + ^_^) ...Bon ya jsute deux paramétres qui sont pris en compte sous IE et pas sous FIREFOX histoire de pimenté un peu le dev... ce sont les param showstatusbar et showcontrol....
Merci de ton aire si je trouve la solution je la posterai ...
++ ;)

Reply

Marsh Posté le 30-03-2005 à 23:46:30    

Chose promise chose due ...
Pour faire disparaitre les barres de controles d'une video AVI  utilisant WMP le code doit etre  

Code :
  1. <object>
  2.  <PARAM NAME="ShowControls" VALUE="0"> // et pas "FALSE"
  3.     <PARAM NAME="ShowStatusBar" VALUE="0"> // et pas "FALSE"
  4. </object>


Message édité par belay le 30-03-2005 à 23:47:43
Reply

Marsh Posté le 31-03-2005 à 08:21:29    

Dites, il y a que moi qui trouve bizzare ca :

Code :
  1. <!--[if !IE]> <-->

?
 
Ce sont des commentaires conditionnels, ces derniers ne fonctionnent que sur IE. Donc le commentaire ci dessus ne va jamais fonctionner ...
Ben oui, si "IE == true", alors on est dans IE est le commentaires fonctionnent, mais si "IE == false" alors on est pas dans IE, mais du coup le commentaire fonctionne plus, donc du coup pas besoin de tester pour savoir si IE est a false ...
 
Voila ce que nous dit la doc du W3C a propos des objets :
http://www.w3.org/TR/html4/struct/ [...] l#h-13.3.1

Citation :

A user agent must interpret an OBJECT element according to the following precedence rules:
   1. The user agent must first try to render the object. It should not render the element's contents, but it must examine them in case the element contains any direct children that are PARAM elements (see object initialization) or MAP elements (see client-side image maps).
   2. If the user agent is not able to render the object for whatever reason (configured not to, lack of resources, wrong architecture, etc.), it must try to render its contents.


 
En gros ca veut dire ca :
1) Essayer d'afficher l'objet sans tenir compte des elements a l'interieur de cet objet. Examiner quand meme les elements a l'interieur seulement pour detecter s'il y a des param.
2) Si l'objet "pere" ne peut pas etre affiche, alors afficher le contenu de objet.
 
Donc, ca nous donne quelque chose comme ca :

Code :
  1. <object ...>
  2. <!-- des eventuels params, mais vaut mieux les metre directement dans la balise object -->
  3.   <!-- Le contenu de la balise object sera l'affichage alternatif
  4.    ici nous metons un autre objet comme aff alternatif -->
  5.   <obect ...>
  6.      <!-- les ev. params du 2e objet -->
  7.      <p>Vous avez besoin du plugin XYZ pour afficher la video</p>
  8.   </object>
  9. </object>


 
Avec un code structure de la sorte, on pourra par exemple metre l'objet destine a IE en premier, et les objets pour les autres nav a l'interieur de ce dernier. De cette facon nous n'avons meme pas besoin d'utiliser les commentaires conditionnels d'IE.
 
Quand FireFox (ou autre), va essayer de lire le premier objet, il va pas reussir, il va alors essayer d'affiche le contenu du 1er objet. Ce contenu est a son tour un 2e objet, cet objet peut alors etre affiche par FF, ou s'il en est encore incapable, il va essayer d'afficher le contenu du 2e objet.
Ce dernier contenu est un <p> qui indique au visiteur, que ce dernier doit installer un plugin. Ici on peut imaginer soit un contenu alternatif de l'objet (vivement conseille), soit les informations necessaire pour telecharger et installe le plugin.
 
De cette facon, nous avons une page qui respecte la norme, n'utilise pas de code specifique a un navigateur (ormis les objets construits pour tel ou tel nav), et un contenu alternatif pour l'accessibilité. Comme ca, meme avec un nav texte on peut "voir" l'objet concerne.
 
PS : FlorentG, c'est pas toi qui avait donne un exemple de 3 objets imbriques les uns dans les autres (c'etait un pdf, puis un xls, puis une table me semble).


Message édité par cerel le 31-03-2005 à 08:22:12
Reply

Marsh Posté le 31-03-2005 à 08:21:51    

cerel a écrit :

Dites, il y a que moi qui trouve bizzare ca :

Code :
  1. <!--[if !IE]> <-->

?
 
Ce sont des commentaires conditionnels, ces derniers ne fonctionnent que sur IE. Donc le commentaire ci dessus ne va jamais fonctionner ...
Ben oui, si "IE == true", alors on est dans IE est le commentaires fonctionnent, mais si "IE == false" alors on est pas dans IE, mais du coup le commentaire fonctionne plus, donc du coup pas besoin de tester pour savoir si IE est a false ...
 
Voila ce que nous dit la doc du W3C a propos des objets :
http://www.w3.org/TR/html4/struct/ [...] l#h-13.3.1

Citation :

A user agent must interpret an OBJECT element according to the following precedence rules:
 
   1. The user agent must first try to render the object. It should not render the element's contents, but it must examine them in case the element contains any direct children that are PARAM elements (see object initialization) or MAP elements (see client-side image maps).
   2. If the user agent is not able to render the object for whatever reason (configured not to, lack of resources, wrong architecture, etc.), it must try to render its contents.


 
En gros ca veut dire ca :
1) Essayer d'afficher l'objet sans tenir compte des elements a l'interieur de cet objet. Examiner quand meme les elements a l'interieur seulement pour detecter s'il y a des param.
2) Si l'objet "pere" ne peut pas etre affiche, alors afficher le contenu de objet.
 
Donc, ca nous donne quelque chose comme ca :

Code :
  1. <object ...>
  2. <!-- des eventuels params, mais vaut mieux les metre directement dans la balise object -->
  3.   <!-- Le contenu de la balise object sera l'affichage alternatif
  4.    ici nous metons un autre objet comme aff alternatif -->
  5.   <obect ...>
  6.      <!-- les ev. params du 2e objet -->
  7.      <p>Vous avez besoin du plugin XYZ pour afficher la video</p>
  8.   </object>
  9. </object>


 
Avec un code structure de la sorte, on pourra par exemple metre l'objet destine a IE en premier, et les objets pour les autres nav a l'interieur de ce dernier. De cette facon nous n'avons meme pas besoin d'utiliser les commentaires conditionnels d'IE.
 
Quand FireFox (ou autre), va essayer de lire le premier objet, il va pas reussir, il va alors essayer d'affiche le contenu du 1er objet. Ce contenu est a son tour un 2e objet, cet objet peut alors etre affiche par FF, ou s'il en est encore incapable, il va essayer d'afficher le contenu du 2e objet.
Ce dernier contenu est un <p> qui indique au visiteur, que ce dernier doit installer un plugin. Ici on peut imaginer soit un contenu alternatif de l'objet (vivement conseille), soit les informations necessaire pour telecharger et installe le plugin.
 
De cette facon, nous avons une page qui respecte la norme, n'utilise pas de code specifique a un navigateur (ormis les objets construits pour tel ou tel nav), et un contenu alternatif pour l'accessibilité. Comme ca, meme avec un nav texte on peut "voir" l'objet concerne.
 
PS : FlorentG, c'est pas toi qui avait donne un exemple de 3 objets imbriques les uns dans les autres (c'etait un pdf, puis un xls, puis une table me semble).


Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed