Jouer un son lors d'un evenement chat ajax
Fermé
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
-
3 avril 2010 à 09:34
tidave Messages postés 31 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 26 octobre 2019 - 5 avril 2010 à 04:03
tidave Messages postés 31 Date d'inscription vendredi 11 juillet 2008 Statut Membre Dernière intervention 26 octobre 2019 - 5 avril 2010 à 04:03
A voir également:
- Jouer un son lors d'un evenement chat ajax
- Chat gpt gratuit - Télécharger - Outils Internet
- Jouer a pokemon sur android - Guide
- Numero forum chat ✓ - Forum Mail
- Nrj chat coco ✓ - Forum Mail
- Coco chat - Forum Réseaux sociaux
18 réponses
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
4 avril 2010 à 08:10
4 avril 2010 à 08:10
C'est JavaScript (côté client !) qui sert à jouer un son (ça ne sert à rien de lire des sons sur le serveur). Il faut initialiser le(s) lecteur(s) comme sur ma page d'exemples, avec:
Il y a forcément une partie qui gère les événements 'nouveau message', 'nouveau chatteur' en ligne, etc., dans ton code JavaScript.
Il suffit ensuite d'ajouter
dans la partie qui gère l'affichage d'un nouveau message pour qu'un son soit lu en même temps sur le PC.
Pour le chat, est-ce qu'il s'agit d'un module tout fait ?
<script type="text/javascript" src="jsound.js"></script> <script type="text/javascript"> sound.decks(3); sound.load('connexion.mp3', 0); sound.load('nouveaumessage.mp3', 1); sound.load('nouveauchatteur.mp3', 2); </script>
Il y a forcément une partie qui gère les événements 'nouveau message', 'nouveau chatteur' en ligne, etc., dans ton code JavaScript.
Il suffit ensuite d'ajouter
sound.play(1);
dans la partie qui gère l'affichage d'un nouveau message pour qu'un son soit lu en même temps sur le PC.
Pour le chat, est-ce qu'il s'agit d'un module tout fait ?
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
3 avril 2010 à 10:10
3 avril 2010 à 10:10
Bonjour,
J'ai justement codé une petite librairie JavaScript qui permet de lire des sons en utilisant un player Flash simplifié. Les fichiers sont à l'adresse https://www.hugedomains.com/domain_profile.cfm?d=creadiff&e=com.
Il faut que tu télécharges 'sound.swf' et 'sound.js' sur ton serveur. Le fichier JavaScript contient une classe qui permet de lire des sons, qui sont gérés sous forme de 'decks'. Des mp3 peuvent être assignés à chaque deck; par défaut, 2 decks sont créés.
Exemple:
Dans cet exemple, on charge un son différent dans chacun des decks; au démarrage, 'son1.mp3' est joué. Quand on clique sur le bouton, le deuxième son est joué.
Il te suffit d'ajouter une ligne du type 'sound.play(0);' dans ton code, à l'endroit où tu mets la conversation à jour.
J'ai justement codé une petite librairie JavaScript qui permet de lire des sons en utilisant un player Flash simplifié. Les fichiers sont à l'adresse https://www.hugedomains.com/domain_profile.cfm?d=creadiff&e=com.
Il faut que tu télécharges 'sound.swf' et 'sound.js' sur ton serveur. Le fichier JavaScript contient une classe qui permet de lire des sons, qui sont gérés sous forme de 'decks'. Des mp3 peuvent être assignés à chaque deck; par défaut, 2 decks sont créés.
Exemple:
<script type="text/javascript" src="sound.js"></script> <script type="text/javascript"> sound.load('son1.mp3', 0); // charge un son dans le premier deck sound.load('son2.mp3', 0); // charge un son dans le deuxième deck sound.play(0); </script> <button onclick="sound.play(1);">Jouer !</button>
Dans cet exemple, on charge un son différent dans chacun des decks; au démarrage, 'son1.mp3' est joué. Quand on clique sur le bouton, le deuxième son est joué.
Il te suffit d'ajouter une ligne du type 'sound.play(0);' dans ton code, à l'endroit où tu mets la conversation à jour.
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
3 avril 2010 à 17:42
3 avril 2010 à 17:42
Merci pour ta réponse rapide, mais comment ça fonctionne?
comment je fais pour lire mon mp3.
Désolé, je suis un peu perdu en javascript.
As-tu un exemple qui fonctionne.
Avant de poster, j'ai potasser un petit peu, mais sans succès
Alors, si j'ai bien compris , l'idée est de precharger le mp3, et ensuite de l'appeller quand on en a besoin, ceci en utilisant javascript, c'est ça?
Merci pour les réponses,
a bientôt
comment je fais pour lire mon mp3.
Désolé, je suis un peu perdu en javascript.
As-tu un exemple qui fonctionne.
Avant de poster, j'ai potasser un petit peu, mais sans succès
Alors, si j'ai bien compris , l'idée est de precharger le mp3, et ensuite de l'appeller quand on en a besoin, ceci en utilisant javascript, c'est ça?
Merci pour les réponses,
a bientôt
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
Modifié par creadiff le 4/04/2010 à 07:24
Modifié par creadiff le 4/04/2010 à 07:24
Voilà un petit exemple d'interface utilisant le script en question. Comme tu parlais de gérer des événements en AJAX, j'ai supposé que tu avais déjà de bonnes connaissances en JavaScript.
J'ai commenté le code source pour plus de clarté.
Si tu as de nouveau des questions, n'hésite pas !
J'ai commenté le code source pour plus de clarté.
Si tu as de nouveau des questions, n'hésite pas !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 07:56
4 avril 2010 à 07:56
merci pour ta reponse
en fait ce que je veux faire, c'est de pouvoir rajouter un son a un evenement dans mon chat en php et ajax
Alors je voudrais que lorsque quelqu'un se connecte, qu'il yait un son.
En fait la partie serveur, php c'est ok, j'arrive a gerer et a crrer une variable dès que quelqu'un se connecte.
Je voudrais juste jouer un son en appelant une fonction javascript qui se trouve sur le fichier mere ou principale.
ensuite, dès que le son est joué, j'efface ma variable qui a été créé, ainsi de suite.
A bientôt et merci
en fait ce que je veux faire, c'est de pouvoir rajouter un son a un evenement dans mon chat en php et ajax
Alors je voudrais que lorsque quelqu'un se connecte, qu'il yait un son.
En fait la partie serveur, php c'est ok, j'arrive a gerer et a crrer une variable dès que quelqu'un se connecte.
Je voudrais juste jouer un son en appelant une fonction javascript qui se trouve sur le fichier mere ou principale.
ensuite, dès que le son est joué, j'efface ma variable qui a été créé, ainsi de suite.
A bientôt et merci
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 08:31
4 avril 2010 à 08:31
Merci tu es vraiment rapide et décidé à m'aider
alors tu as bien compris ce que je veux faire.....
Je ne joue pas le son coté serveur, je veux l'appeller comme tu as dit.
En faisant justement comme ça
sound.play(1);
Mais comment appeller ça ?
Je dois faire :
<script type="text/javascript">
function {
sound.play(1) ;
}
</script>
et ensuite faire :
<body onload="function sound.play(1) ;" >
Mais je doute que ça soit juste
alors tu as bien compris ce que je veux faire.....
Je ne joue pas le son coté serveur, je veux l'appeller comme tu as dit.
En faisant justement comme ça
sound.play(1);
Mais comment appeller ça ?
Je dois faire :
<script type="text/javascript">
function {
sound.play(1) ;
}
</script>
et ensuite faire :
<body onload="function sound.play(1) ;" >
Mais je doute que ça soit juste
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 08:35
4 avril 2010 à 08:35
Sorry, j'oubliais, c'est un chat que je code moi meme, en php et ajax
en fait j'aime coder, je suis plutot php
là je me mets au javascript
A bientôt
en fait j'aime coder, je suis plutot php
là je me mets au javascript
A bientôt
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
Modifié par creadiff le 4/04/2010 à 09:12
Modifié par creadiff le 4/04/2010 à 09:12
Pour initialiser, il faut charger le script (le fichier jsound.js est à placer dans le même dossier que la page PHP):
Puis créer un deck, et charger un mp3 dans celui-ci:
Pour que le son soit joué au chargement de la page, il faut faire:
Normal que je soie décidé à t'aider, suis tout fier de ma nouvelle librairie ^^
Et puis c'est jamais facile de débuter...
Sinon, quand tu veux exécuter des instructions en JavaScript, inutile (et non recommandé!) de les faire précéder de function, cette instruction sert plutôt à déclarer une fonction.
<script type="text/javascript" src="jsound.js"></script>
Puis créer un deck, et charger un mp3 dans celui-ci:
<script type="text/javascript"> sound.decks(1); // crée un deck sound.load('connexion.mp3', 0); // charge un son dans ce deck </script>
Pour que le son soit joué au chargement de la page, il faut faire:
<body onload="sound.play(0) ;">
Normal que je soie décidé à t'aider, suis tout fier de ma nouvelle librairie ^^
Et puis c'est jamais facile de débuter...
Sinon, quand tu veux exécuter des instructions en JavaScript, inutile (et non recommandé!) de les faire précéder de function, cette instruction sert plutôt à déclarer une fonction.
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 10:07
4 avril 2010 à 10:07
Salut
malheureusement , ça ne marche pas
j'ai fait un test avec
<script type="text/javascript" src="jsound.js"></script>
<script type="text/javascript">
sound.load('sounds/sound_1.mp3', 0); // charge un son dans le premier deck
sound.load('sounds/sound_2.mp3', 0); // charge un son dans le deuxième deck
sound.play(0);
</script>
<button onclick="sound.play(1);">Jouer !</button>
mais ça ne fonctionne pas, c'est bizarre non.....
malheureusement , ça ne marche pas
j'ai fait un test avec
<script type="text/javascript" src="jsound.js"></script>
<script type="text/javascript">
sound.load('sounds/sound_1.mp3', 0); // charge un son dans le premier deck
sound.load('sounds/sound_2.mp3', 0); // charge un son dans le deuxième deck
sound.play(0);
</script>
<button onclick="sound.play(1);">Jouer !</button>
mais ça ne fonctionne pas, c'est bizarre non.....
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 16:13
4 avril 2010 à 16:13
je ne veux pas etre trop embétant , mais sur ce coup là j'aurais besoin d'un peu d'aide, je suis encore au lait qu'en a ajax et Javascript.
Alors je poste mon code, peut etre que ça aidera.
Ceci est ma fonction "ajax" qui appelle la page son.php toutes les 2 secondes
<script language="javascript" type="text/javascript">
function refresh_div() {
var xhr_object = null;
if (window.XMLHttpRequest) {
xhr_object = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {
}
} else {
}
var method = 'GET';
var filename = 'son.php';
xhr_object.open(method, filename, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText;
document.getElementById('div_son').innerHTML = tmp;
}
};
xhr_object.send(null);
}
window.onload = function() {
setTimeout(refresh_div, 2000);
};
</script>
- une partie du fichier son.php :
<?php
//la variable $son_messages="ok" si il ya un nouveau message
if ($son_messages=="ok") {
//jouer mp3
//effacer la valeur du champs son message
$SQL33 = "UPDATE sons SET son_messages='$vide'";
$result33 = mysql_query($SQL33);
} ?>
-div_son est la div qui affiche
-son.php est la page de traitement
En gros voilà ce que je veux faire
Merci de m'aider, ce serait vraiment cool.
Alors je poste mon code, peut etre que ça aidera.
Ceci est ma fonction "ajax" qui appelle la page son.php toutes les 2 secondes
<script language="javascript" type="text/javascript">
function refresh_div() {
var xhr_object = null;
if (window.XMLHttpRequest) {
xhr_object = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xhr_object = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {
}
} else {
}
var method = 'GET';
var filename = 'son.php';
xhr_object.open(method, filename, true);
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText;
document.getElementById('div_son').innerHTML = tmp;
}
};
xhr_object.send(null);
}
window.onload = function() {
setTimeout(refresh_div, 2000);
};
</script>
- une partie du fichier son.php :
<?php
//la variable $son_messages="ok" si il ya un nouveau message
if ($son_messages=="ok") {
//jouer mp3
//effacer la valeur du champs son message
$SQL33 = "UPDATE sons SET son_messages='$vide'";
$result33 = mysql_query($SQL33);
} ?>
-div_son est la div qui affiche
-son.php est la page de traitement
En gros voilà ce que je veux faire
Merci de m'aider, ce serait vraiment cool.
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 17:58
4 avril 2010 à 17:58
Merci de ta réponse, mais je ne comprends pas ce que tu veux dire
peux-tu eclairer ma lenterne , please
ça a l'air si simple et pourtant si compliqué
A bientôt
peux-tu eclairer ma lenterne , please
ça a l'air si simple et pourtant si compliqué
A bientôt
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
4 avril 2010 à 18:00
4 avril 2010 à 18:00
Par rapport au script de ton avant-dernier post...
1 - est-ce que tu as bien copié le fichier jsound.js dans le même dossier que celui où se trouve la page qui l'appelle ?
2 - est-ce que les 2 fichiers mp3 sont bien dans le dossier relatif sound ?
1 - est-ce que tu as bien copié le fichier jsound.js dans le même dossier que celui où se trouve la page qui l'appelle ?
2 - est-ce que les 2 fichiers mp3 sont bien dans le dossier relatif sound ?
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 18:08
4 avril 2010 à 18:08
salut encore merci pour tes efforts
alors j'ai fais comme indiqué
les deux fichiers jsound.js et jsound.swf sont dans le meme repertoire que le script qui les appelle
mes deux fichiers son sont bien présent, je les ai testé en dur c'est ok
je suis largué là
apr contre j'ai pas compris ton précédent post
je pense que tu méritera une medaille si j'arrive a bout
ta classe est basé sur soundmanager je crois, je connais un petit peu
A bientôt
alors j'ai fais comme indiqué
les deux fichiers jsound.js et jsound.swf sont dans le meme repertoire que le script qui les appelle
mes deux fichiers son sont bien présent, je les ai testé en dur c'est ok
je suis largué là
apr contre j'ai pas compris ton précédent post
je pense que tu méritera une medaille si j'arrive a bout
ta classe est basé sur soundmanager je crois, je connais un petit peu
A bientôt
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
4 avril 2010 à 19:48
4 avril 2010 à 19:48
Allo,
je vois que tu as eu un peu marre de mes questions,
je m'en vais creuser encore un peu
MErci
je vois que tu as eu un peu marre de mes questions,
je m'en vais creuser encore un peu
MErci
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
4 avril 2010 à 21:34
4 avril 2010 à 21:34
Damned ! Je ne connaissait pas soundmanager, après avoir fait un tour sur leur site, je vois que ce que j'ai fait existait déjà... Tant pis !
Je crois avoir trouvé ce qui ne va pas dans ton code:
1- Tu veux charger des mp3, mais les decks ne sont pas initialisés par
2- Les deux mp3 sont envoyés au deck 0 (le deuxième paramètre de la fonction load est le numéro du deck; tu en veux 2, donc le premier son est pour le deck 0 et le deuxième pour le deck 1)
3- Tu veux ensuite déclencher la lecture par click sur un bouton, mais tu déclenches la lecture du deck 1, qui n'a pas été créé (1) et ne contient pas de mp3 (2).
Corrige ces erreurs, et je te garantis que ça fonctionnera !
Je crois avoir trouvé ce qui ne va pas dans ton code:
1- Tu veux charger des mp3, mais les decks ne sont pas initialisés par
sound.deck(2)
2- Les deux mp3 sont envoyés au deck 0 (le deuxième paramètre de la fonction load est le numéro du deck; tu en veux 2, donc le premier son est pour le deck 0 et le deuxième pour le deck 1)
3- Tu veux ensuite déclencher la lecture par click sur un bouton, mais tu déclenches la lecture du deck 1, qui n'a pas été créé (1) et ne contient pas de mp3 (2).
Corrige ces erreurs, et je te garantis que ça fonctionnera !
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
5 avril 2010 à 00:41
5 avril 2010 à 00:41
SAlut
<script type="text/javascript" src="jsound.js"></script>
<script type="text/javascript">
sound.decks(2);
sound.load('sounds/sound_1.mp3', 0); // charge un son dans le premier deck
sound.load('sounds/sound_2.mp3', 1); // charge un son dans le deuxième deck
sound.play(0);
</script>
<button onclick="sound.play(0);">Jouer !</button>
ça marche pas,
mais pas grave j'abandonne
A bientôt
<script type="text/javascript" src="jsound.js"></script>
<script type="text/javascript">
sound.decks(2);
sound.load('sounds/sound_1.mp3', 0); // charge un son dans le premier deck
sound.load('sounds/sound_2.mp3', 1); // charge un son dans le deuxième deck
sound.play(0);
</script>
<button onclick="sound.play(0);">Jouer !</button>
ça marche pas,
mais pas grave j'abandonne
A bientôt
creadiff
Messages postés
445
Date d'inscription
samedi 3 avril 2010
Statut
Membre
Dernière intervention
3 novembre 2011
57
5 avril 2010 à 03:54
5 avril 2010 à 03:54
Au fait, l'interaction Flash-JavaScript ne peut pas fonctionner en local (raisons de sécurité)... ce qui fait que la librairie n'est pas testable en local. As-tu essayé en essayant directement avec les sources du .zip ?
tidave
Messages postés
31
Date d'inscription
vendredi 11 juillet 2008
Statut
Membre
Dernière intervention
26 octobre 2019
3
5 avril 2010 à 04:03
5 avril 2010 à 04:03
Salut
oui j'ai envoyé sur mon serveur, j'ai pas testé en local pour voir
Mais je fais une pause, ça ne fonctionne pas,
je vais essayer autre chose ou laisser tomber ça
du moins pour l'instant
oui j'ai envoyé sur mon serveur, j'ai pas testé en local pour voir
Mais je fais une pause, ça ne fonctionne pas,
je vais essayer autre chose ou laisser tomber ça
du moins pour l'instant