utilisation méthodes play() et stop() sur un objet embed

aubry@IDN

Nouveau membre
Bonjour,

pour une fois il faut reconnaitre que c'est avec firefox que mon problème se pose et non avec IE...

j'ai créer une simple page avec un lecteur qui se connecte à un streaming audio

<embed name="Player" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="monlien.asx" type="application/asx" width="198" height="45" autostart="0" showstatusbar="0" volume="1"></embed>

ce que je voudrais, c'est contrôler le lecteur non par l'utilisation des contrôles par défaut, mais par l'utilisation des méthodes play() et stop() applicable à un objet embed

<script language="javascript">
function lecture(objet){
document.getElementById(objet).play();
}
function arret(objet){
document.getElementById(objet).stop();
}
</script>

<a href="javascript:lecture('Player')">mise en route</a>
<a href="javascript:arret('Player')">arrêter</a>

les liens fonctionnent parfaitement sous IE, mais en aucun cas sous Firefox (et les autres navigateurs de type Netscape)

quelqu'un aurait il une solution pour que mes visiteurs puissent entendre le flux audio depuis leur navigateur préféré ? :ange:

Merci d'avance
 

marsien

Grand Maître
Ouais, utiliser les vraies balises pour l'insertion d'objets multimedia (et autres) : <object> </object>


<embed> n'est pas une balise valide, elle est seulement tolérée plus ou moins bien. Et pour ce qui est de gérée la merde, c'est sur que IE est champion :o


:D
 

aubry@IDN

Nouveau membre
sauf que de toute facon je suis obligé de rajouter un embed sinon firefox ne reconnait pas l'objet CLASSID existe pas avec firefox...
 

marsien

Grand Maître
Pas vraiment, FF reconnait parfaitement le classid, il ne reconnait simplement pas WMP comme lecteur associé à son classid. Mets un autre lecteur, soit pour firefox uniquement (avec un test du navigateur), soit pour tous les navigateurs (par ex Quicktime...). Choisis en un compatible avec autre chose que Windows...
 

Johan_et_Pirlouit

Grand Maître
Firefox reconnait le classid mais avec des limitations (surtout vu que c'est un système désormais "officiellement" abandonné par les recommandations récentes de l'XHTML), autant qu'il n'a, par contre, jamais reconu le <embed>.. Il faut passer par l'attribut désormais "standard" type="application/mon_type_d'application", ce qui est 100% reconnu par Firefox et tous les navigateurs récents et dignes de ce nom.. Par exemple, pour une anim Flash,c'est type="application/x-shockwave-flash".. Ce qui est d'autant plus vrai depuis qu'on programme en XHTML (depuis 2000, en gros)..

L'attribut "type" se met directement dans la balise <object>, comme il l'est dans ton <embed>.. Après, les attributs name, pluginspage, autostart, showstatusbar et volume ne sont pas des attributs valides, il faut passer par une balise du genre <param name="nom_du_paramètre" value="valeur_du_paramètre" />. Rappel : la balise <param /> est dans la balise <object>.

Une suggestion d'exemple d'après ton <embed> :
[cpp]<object id="Player" src="monlien.asx" type="application/asx" width="198" height="45">
<param name="autostart" value="0" />
<param name="showstatusbar" value="0" />
<param name="volume" value="1" />
</object>[/cpp]
Une liste de ce qu'on appelle des "types Mime" >> .. Cette liste n'est pas tout à fait à jour, elle ne contient pas les derniers formats de fichiers multimedia à la mode ces temps-ci, mais elle peut te servir à t'inspirer.. Il se peut que le type de fichier soit reconnu en tant que "application/x-asx" plutôt que "application/asx".. A toi d'essayer..

Cela dit, IE (au moins jusqu'à IE 6) ne connait pas le système de type Mime, il faut passer par le classid.. Pour IE 7, je n'ai pas essayé (mais je sens que je vais le faire très vite :ange: ; encore un oubli dans mise à niveau de mon site, certes particulièrement mineur)......

Et sinon, Firefox 2 semble bien lire les fichiers multimedia Microsoft via l'intégration du Windows Media Player en tant que plugin dans la page Web qui l'appelle..

:merci:
 

enguerran

Expert
Bonjour biskot,

as-tu résolu ton problème ?

Je suis dans le même cas que toi.
Je n'utilise que la balise object (pas de embed), mais mes liens pour lire et stopper la video ne marche pas dans firefox.

Merci ^
 

Johan_et_Pirlouit

Grand Maître

Et ton code (X)HTML et / ou JS, on doit le deviner ?

:merci:
 

enguerran

Expert
Voilà le code.
La vidéo est affichée et lue par IE7 et Firefox 2.0, mais dans Firefox, je ne peux pas utiliser mon lien Lire :(

[cpp]<html>
<head>
<title>Video</title>
<script language="javascript">
function lire() {
document.getElementById('player').play();
}
</script>
</head>
<body>
<object
id="player"
type="video/x-ms-wmv"
style="width:320px; height:308px;">
<param name="filename" value="uneVideoWMV" />
<param name="autoStart" value="0" />
<param name="AnimationatStart" value="0" />
<param name="showdisplay" value="0" />
<param name="TransparentAtStart" value="0" />
<param name="ShowControls" value="1" />
<param name="ShowStatusBar" value="1" />
<param name="ShowPositionControls" value="0" />
</object>
<br />
<span onclick="javascript:lire()">Lire</span>
</body>
</html>[/cpp]

Si quelqu'un a une idée, je suis vraiment preneur.

Merci d'avance ^^

EDIT : mise à jour du code pour prendre en compte les remarques de Johan_et_Pirlouit sur le XHTML
 

Johan_et_Pirlouit

Grand Maître
Petite note pour les balises XHTML "simples" : il y a un espace avant le slash "/" de fermeture ;) :[cpp]<br />
<img src="monimage.ext" alt="" />
<meta ... />
etc..[/cpp]
Et les balises <param /> sont aussi des balises simples, donc obligation du tag de fermeture (le slash "/" comme toutes les autres du même type).. Des choses comme ça qu'on oublie assez vite, surtout quand on récupère des portions de code en vieux HTML 4.xx :ange:..

Sinon, pourquoi tu passe par JS pour un bouton "lire" ? Pourquoi tu ne le fais pas directement dans ton Flash comme n'importe quel lecteur multimedia Flash (lecteur MP3, lecteur vidéo, etc) ?

Passer par JS revient à s'exposer aux différences d'implémentation du langage sur les différents navigateurs, donc à des soucis éventuels de compatibilité de ton script, même si les choses s'améliorent avec le temps (surtout depuis que JS est "standardisé" en tant que recommandation W3C : l'ECMAScript, mais ça reste plutôt récent) [:spamafote]..

:merci:
 

enguerran

Expert
Je n'utilise pas un lecteur flash, mais un lecteur présent chez l'utilisateur qui lit les .wmv (Windows Media Player la plupart du temps).
Mon bouton lire n'est la que pour illustrer mes besoins.
Je dois pouvoir arrêter la lecture d'une vidéo automatiquement (sans que l'utilisateur clique sur "Stop") lorsque celui-ci choisit de regarder une nouvelle vidéo.
Mes différentes vidéos sont dans des div, toutes dans la même page.
Voilà pour les détails ;)

EDIT : merci pour le rappel sur les balises XHTML simples :)
EDIT 2 : j'ai mis à jour le code du coup.
 

zeb

Modérateur
merci pour le rappel sur les balises XHTML simples
Ces remarques valent pour toi :o .... Et pour tous les autres :whistle:


(... Me rappelant d'un topic ou le gugus postait son code - infâme - et râlait de lire des remarques et commentaires pas exactement en rapport avec la question ... :merci: pour ton esprit ;) )
 

Johan_et_Pirlouit

Grand Maître
Et moi j'ai tellement l'habitude de l'usage de player Flash que j'ai immédiatement pensé ...... Flash ! (c'est ça que de lire tout plein de trucs en même temps : je mélange :pt1cable:).. Au temps pour moi, donc :merci:..


Reste à voir du côté de la fonction play() que tu utilises dans ton JS.. Voir si c'est bien compatible tous navigateurs et si ce ne serait pas un truc spécial MS pour IE.. Essaie aussi avec Opera et tu auras une meilleure idée ;).. Et si tu as un Linux ou un Mac sous la main, essaie soit avec Konqueror, soit avec Safari, tous deux utilisent le même "moteur" de fonctionnement : KHTML.. Ainsi, tu verras aussi que tes WMV risquent fort de ne pas être lus, vu que c'est du pur format Microsoft..

Ce que tu pourrais essayer, quitte à utiliser un format propriétaire, c'est de convertir en vidéo Flash FLV et d'utiliser un player multimedia Flash.. Sinon, publier au format MPG, le MPEG-1 peut convenir pour des vidéos sur le Web, tant qu'on reste en petite taille..


(et je plussoie zeb dans sa parenthèse ;))

:merci:
 
M

Membre supprimé 1

Invité
NE PAS UTILISER stop() mais Stop() !!! de meme pour play (Play())
 

boub popsyteam

Grand Maître
Presque 2 ans apres, pas mal ;)

A voir si ça servira à quelqu'un ... ou pas :)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 131
Messages
6 717 954
Membres
1 586 382
Dernier membre
alejandrooo
Partager cette page
Haut