Page 1 sur 2
Emettre un son sur Messagerie
Posté : 30 déc. 2012, 19:16
par Michel6359
Bonjour , je souhaite ajouter un son lorsqu'un nouveau message est poster sur mon site par la messagerie instantané . Merci pour votre aide
<div id="chat"><img src="images/icons/Chat.png" alt="" name="CHAT" width="54" height="54" align="absmiddle"> CHATTER AVEC ******* !<!-- Chat Room -->
<div id="room"><dl></dl></div>
<!-- Formulaire -->
<form action="#" method="post">
<input type="text" name="user" value="<?php echo '' .$info_membres[1].''; ?>" size="7"/>
<input type="text" name="message" size="30" AUTOCOMPLETE="off" />
<input type="submit" value="Envoyer" />
</form>
</div>
Re: Emettre un son sur Messagerie
Posté : 31 déc. 2012, 11:33
par Nours312
Salut,
Pour cela il faudrait savoir comment les nouveaux messages sont reçus ...
Est-ce un traitement javascript (trés fort probable) dans ce cas, le forum HTML/CSS n'est pas le bon
Y a t'il une lib qui est utiolisée (jQuery / mootools / ...) par ce que le code permettant de jouer ce sont ne sera pas le même
As tu des restrictions de navigateur ? si ton chat est réservé aux navigateurs récent, il peut y avoir des outils permettant de générer les sons dans le navigateurs a partir de la fréquence, sinon, il faudra lancer une musique depuis un fichier spécifique ...
Donc ... ?
@++
Re: Emettre un son sur Messagerie
Posté : 01 janv. 2013, 15:51
par Michel6359
Meilleure voeux de bonheur pour cette année 2013 !
Merci pour réponse
Voici le code :
[javascript]/**
* Un mini-Chat en jQuery/Php
* par Jay Salvat -
http://blog.jaysalvat.com/
*/
$(function() {
$('#chat form').submit(function() {
var user = $('#chat input[name=user]').val();
var message = $('#chat input[name=message]').val();
$.post('chat/chat.php', { 'user':user, 'message':message }, function() {
refreshChat();
});
$('#chat input[name=message]').val('');
return false;
});
function refreshChat() {
$.ajax({
url: "chat/chat.html",
ifModified:true,
success: function(content){
$('#room').html(content);
}
});
setTimeout(refreshChat, 5000);
}
Donc je pense mettre le son ici mais comment je ne connais le Javascript je débute un peu en html et php , merci pour votre aide car ce chat me plaît bien créé par par Jay Salvat.
refreshChat();
});[/javascript]
Il y a aussi un traitement en php
Code : Tout sélectionner
<?php
/**
* Un mini-Chat en jQuery/Php
* par Jay Salvat - http://blog.jaysalvat.com/
*/
$file = 'chat.html'; // fichier de stockage
$max_lines = 30; // nombre de lignes maximum stockées
if (isset($_POST['message'])) {
$user = stripslashes($_POST['user']);
$message = stripslashes($_POST['message']);
$date = date('d/m/y H:i:s');
$new_line = "<dt><b>{$user}</b> {$date}</dt><dd>{$message}</dd>\n";
$content = file($file);
$content = array_slice($content, 0, $max_lines);
array_unshift($content, $new_line);
file_put_contents($file, $content);
}
?>
Re: Emettre un son sur Messagerie
Posté : 02 janv. 2013, 18:04
par Nours312
Salut ...
Donc, le souci c'est que tu as ton fichier chat.html qui va etre rechargé dans une div#room toutes les 5 secondes (si l'utilisateur courant n'ajoute pas de contenu), SANS se poser la question de savoir si il y a du nouveau ou pas ...
la mise à jur ce fait ici
[javascript]$('#room').html(content);[/javascript]
déja tu pourrais commencer par regarder si le contenu est différent de ton fichier de chat
[javascript]
if($('#room').html() != content) {
alert('du nouveau') ;
$('#room').html(content);
}
[/javascript]
ensuite il te faut modifier remplacer l'alerte par une fonction permettant de jouer un son
Avance là dessus, cherche des outils jQuery permettant de jouer les sons, et tiens nous au courant
@++
Re: Emettre un son sur Messagerie
Posté : 02 janv. 2013, 23:40
par Michel6359
Bonsoir merci pour ta réponse
J'ai fais plusieurs test mes toujours rien , merci de m'aider.
J'ai ajouté dans mon fichier html :
Code : Tout sélectionner
<audio id="notification">
<source src="http://www.**-**.com/Web/Accueil2011/chat/0342.mp3" type="audio/mpeg">
<source src="http://www.**-**.com/Web/Accueil2011/chat/newalert.ogg" type="audio/ogg">
Votre navigateur ne gère pas la balise audio
</audio>
Mon formulaire d'envoi de message :
Code : Tout sélectionner
<div id="chat"><img src="images/icons/Chat.png" alt="" name="CHAT" width="54" height="54" align="absmiddle"> CHATTER AVEC ** !<!-- Chat Room -->
<div id="room"><dl></dl></div>
<!-- Formulaire -->
<form action="#" method="post">
<input type="text" name="user" value="<?php echo '' .$info_membres[1].''; ?>" size="7"/>
<input type="text" name="message" size="100" AUTOCOMPLETE="off" />
<input type="submit" value="Envoyer" />
</form>
</div>
Dans mon fichier chat.js
Code : Tout sélectionner
/**
* Un mini-Chat en jQuery/Php
* par Jay Salvat - http://blog.jaysalvat.com/
*/
$(function() {
$('#chat form').submit(function() {
var user = $('#chat input[name=user]').val();
var message = $('#chat input[name=message]').val();
$.post('chat/chat.php', { 'user':user, 'message':message }, function() {
refreshChat();
});
$('#chat input[name=message]').val('');
return false;
});
function refreshChat() {
$.ajax({
url: "chat/chat.html",
ifModified:true,
success: function(content){
$('#room').html(content);
$('#notification').play(); // lis le son grâce à l'API Audio d'HTML
}
});
setTimeout(refreshChat, 5000);
}
refreshChat();
});
Re: Emettre un son sur Messagerie
Posté : 03 janv. 2013, 01:31
par Nours312
Salut :
As tu testé dans la console (sur chrome, Safari, IE : F12, FF => FireBug) de voir comment réagissait l'instruction :
[javascript]$('#notification').play();[/javascript]
Et si tu avaios un message d'erreur à un moment donné ?
[javascript]
try {
$('#room').html(content);
$('#notification').play();
} catch(e){
console.log(e);
} [/javascript]
Re: Emettre un son sur Messagerie
Posté : 03 janv. 2013, 11:24
par moogli
salut,
regarde
http://css-tricks.com/play-sound-on-hover/ (par exemple)
a priori c'est plutôt
[javascript]$('#notification')[0].play()
[/javascript]
@+
Re: Emettre un son sur Messagerie
Posté : 03 janv. 2013, 14:17
par Michel6359
Bonjour ,
Merci beaucoup pour vos réponses je regarde vos propositions dés que je rentrer du travail 
Re: Emettre un son sur Messagerie
Posté : 03 janv. 2013, 21:27
par Michel6359
Bonsoir , Merci pour vos réponses !
J'ai trouvé le problème grâce à vous , il fallait ajouter ceci : document.getElementById('notification').play();
J'ai retiré le rafraîchissement toute les 5 secondes , pour que le son soit seulement quand un message est posté.
Encore un grand merci pour votre aide !!! =D>

Re: Emettre un son sur Messagerie
Posté : 04 janv. 2013, 11:00
par Michel6359
Bonjour
J'ai parlé un peu trop vite
, encore un petit souci , la page ne se réactualise pas lors d'un message posté pour les autres personnes , en faites la messagerie avec le son ne se fait que sur le PC de celui qui envois le message et non les autres , donc quand on envois un message la personne n'est pas prévenu par le son et la messagerie n'est pas actualiser qu'un message a été posté.
Merci pour votre aide.
Re: Emettre un son sur Messagerie
Posté : 04 janv. 2013, 12:53
par moogli
si tu veux une diffusion (plus ou moins instantanée) du serveur vers les clients, regarde du coté des web socket, c'est p'tet le plus simple.
sinon il faut que tu ai, quelque part, un flag pour indiqué que l'utilisateur n'a pas lu le message.
donc un rafraîchissement auto du cadre qui contient les message et si le nouveau est différente de l'ancien active le son

(en gros si le html() est différent du html que tu as reconstruit au rafraichissement).
@+
Re: Emettre un son sur Messagerie
Posté : 04 janv. 2013, 14:17
par Michel6359
RE
Bon sa se complique alors , j'en serai pas capable , je connais a peine le HTML , j'ai réussi ce chat grâce à l'exemple code source , j'ai regardé sur google web socket mais je ne vois pas comment faire.
Merci pour votre aide.
Re: Emettre un son sur Messagerie
Posté : 04 janv. 2013, 18:47
par Michel6359
RE comment je peux faire un flag ? SVP
Merci
Re: Emettre un son sur Messagerie
Posté : 04 janv. 2013, 18:55
par Nours312
Salut:
as tu testé le code que je t'ai donné dans mon second post ?
[javascript]
if($('#room').html() != content) {
alert('du nouveau') ;
$('#room').html(content);
}[/javascript]
et qu'est-ce que ça donne ?
Re: Emettre un son sur Messagerie
Posté : 04 janv. 2013, 19:03
par Michel6359
Bonjour
Non puisque que le son fonctionner , excuse moi , c’est bon comme ça l'emplacement du code. Merci
Code : Tout sélectionner
/**
* Un mini-Chat en jQuery/Php
* par Jay Salvat - http://blog.jaysalvat.com/
*/
$(function() {
$('#chat form').submit(function() {
var user = $('#chat input[name=user]').val();
var message = $('#chat input[name=message]').val();
$.post('chat/chat.php', { 'user':user, 'message':message }, function() {
refreshChat();
});
$('#chat input[name=message]').val('');
return false;
});
function refreshChat() {
$.ajax({
url: "chat/chat.html",
if($('#room').html() != content) {
alert('du nouveau') ;
$('#room').html(content);
}
}
});
}
refreshChat();
});