11550 sujets

JavaScript, DOM et API Web HTML5

Pendant que j'écrivais mon message j'ai trouvé la source du problème, mais je me permet quand même de mettre la solution içi pour les moteurs de recherche. Smiley cligne

L'idée c'est que j'essaye de jouer un son sur un événement js ( la fin d'un timer ) , et le moyen le plus compatible que j'ai trouvé est de passer par un lecteur flash. J'ai donc utilisé dewplayer avec les fonctions javascript fournis içi : http://www.alsacreations.fr/dewplayer

Mon problème était qu'après quelques jours d'utilisation, le son ne se jouait plus sous firefox, alors que jusque la je n'avais eu aucun problème.

La console d'erreur indiquait :
dewp.dewplay is not a function

dewp.dewpause is not a function

dewp.dewstop is not a function


En fait cela était dû au fait que je n'affichais pas le lecteur ( il était planqué dans un coin ) et dans ce cas la firefox n'arrive pas a exécuter les fonctions sur l'id "dewplayer".

Solution : Il suffit donc de le mettre à un endroit où il est visible pour que le son soit joué.

quelques liens clés sur les fichiers utilisés pour aider les recherches :
- http://www.alsacreations.fr/mediaflash/dewplayer.zip
- http://www.alsacreations.fr/mediaflash/index-swfobject-js.htm
- http://code.google.com/p/swfobject/

Très sympa le site, je repasserai Smiley smile .

oopinou
Administrateur
Bonjour,

ça tombe bien qu'il ne soit pas (plus) caché: le dewplayer est placé sous licence CC-BY, pas "je l'utilise en le cachant ainsi que le lien-point d'interrogation" Smiley cligne
Bonjour,

J'ai exactement la même erreur, à savoir : dewp.dewplay is not a function, et ce uniquement dans Firefox.

Mon cas de figure est cependant un peux différent, j'ai un script qui est lancé une fois la page prête via l'instruction $(document).ready(function(){}); de JQuery.

Dans ce script j'utilise le code trouvé dans l'exemple du dewplayer :

var dewp = document.getElementById(id);
if(dewp != null) dewp.dewplay();

J'ai voulu vérifier ce que contenais la variable dewp, car il me semblai que la fonction dewplay() étais exécuté trop tôt, le lecteur n'ayant pas eu le temps de se charger.

var dewp = document.getElementById(id);
if(dewp != null) alert(dewp);

Avec ce code j'obtient cependant la même chose sur tout les navigateur : object HTMLObjectElement.

J'utilise SWFObject 2.1 pour charger le dewplayer, je ne sais pas si cela peux avoir un impact.

En écrivant ce message je me demande si il ne faudrait pas que je fasse le chargement de SWFObject via JQuery également, je vais essayer et éditerais ce message.

Si quelqu'un à une idée je suis preneur Smiley smile

Je compte également cacher le lecteur dewplayer, est-ce que si je spécifie clairement et avec un lien que j'utilise ce lecteur la licence est respecté ?

Merci, Ginko.
J'ai mis swfobject.embedSWF("dewplayer.swf", ...........) avant l'exécution de mon script dans l'instruction $(document).ready(function(){}); de JQuery mais le problème reste exactement le même.
J'ai essayé d'utiliser la fonction PercentLoaded documenté ici : http://www.adobe.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

En fesant sa :

var dewp = document.getElementById(id);
if(dewp != null && dewp.PercentLoaded == 100) dewp.dewplay();

Mais le problème ne change pas d'un poil, le chargement est bien fais a 100% puisque dewplay() est exécuté, mais firefox me retourne toujours la même erreur ....

Il y a une autre fonction qui pourrai être intéressante dans la doc d'adobe mais je ne parvient pas à la faire fonctionner, il s'agit de OnReadyStateChange ( la dernière de la page ).
De mémoire, j'avais simplement rajouté une balise <p></p> sous Firefox, et pas sous IE, et ça fonctionnait. ( A prendre avec partimonie, c'était il y a très longtemps. )
Je ne pense pas qu'il y en ai !
Je pense que c'est dans la façon de gérer le flash de la part de chaque navigateur.

Par contre conseil, test sous chrome/safari/opéra pour pas avoir de mauvaise surprise. Ok c'est moche d'adapter le code au navigateur, mais au moins, ça marche.

Ravis de t'avoir aidé.