2014-07-16 50 views
0

我让自己成为一个有趣的小型聊天客户端,我和我的父亲一起使用,他们只是在学习如何实现这一切。无论如何,我想要一个可以在登录会话中播放声音的按钮。如果说,我的全家人登录聊天,我需要听到所有人都听到的声音。在会话中播放声音

我拥有的是...当我点击它时,我有一个播放声音的按钮,但是我是唯一一个听到它的人。

有没有办法做到这一点?

HTML:

<form name="message" action=""> 
     <input name="usermsg" type="text" id="usermsg" size="63" /> 
     <input name="submitmsg" type="submit" id="submitmsg" value="Send" /> 
     <input name="play" type="button" id="play" value="Attention!" onclick="playme('sounds/cartoon.wav')"> 
</form> 

的Javascript:

function playme (url){ 
     var audio=document.createElement("audio"); 
     audio.src=url; 
     audio.play(); 
    } 
+0

假设你的聊天基于服务器。当你点击你需要通知服务器的按钮时,服务器必须然后通知连接的客户端,他们必须播放声音。 – Xotic750

+0

好的......我该怎么做呢? – wribit

+0

你写的一些服务器端代码,以接受来自客户端和客户端代码所述消息发送所述消息,并听取了通知。服务器端代码,当它接收到消息将查看哪些客户端被连接,并且发送一个通知给每个。当客户端收到通知消息时,客户端代码会播放声音。 – Xotic750

回答

0

我会碰到这个走在头进口的jQuery所以

<head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
</head> 

那么对于你的JavaScript

<script> 
function playme(url){ 
$.ajax({ 
type:'POST', 
url: 'process.php', 
data: {url: url}, 
async : true, 
success: function(resp){ 
} 
}); 
</script> 

然后你process.php

<?php 
file_put_contents("audio.txt", $_POST['url']); 
?> 

终于在JavaScript中添加

<script> 
var check=setInterval(function(){ 
$.ajax({ 
url: "audio.txt", 
type: 'POST', 
async: true, 
complete: function(resp){ 
    var res = resp["responseText"]; 
    var audio=document.createElement("audio"); 
    audio.src = res; 
    audio.play(); 

    } 
}); 
},100); 
</script> 

这将保持在一遍又一遍地播放声音谁拥有页面打开。为了避免检查是谁在网上我建议只是增加一个输入框以清除声音的复杂

HTML:

<input type="button" name = "clear" onClick="clear()"> 

的Javascript:

<script> 
function clear(){ 
$.ajax({ 
type:'POST', 
url:'clear.php', 
success: function(resp){ 
} 
}); 
</script> 
在clear.php

<?php 
file_put_contents("audio.txt", ""); 
?> 
0

您的代码基本上播放消息,当您单击按钮时,而不是当您发送消息时。

假设这应该是一个没有jQuery或xmlhttprequest的简单聊天客户端,并且您在$_SESSION中跟踪收到的消息,那么您需要做的是将接收到的消息与您保存的消息进行比较,如果收到新消息,请添加javascript以播放音频。例如。

if($_SESSION('last_message') != $input_message) 
{ 
    echo '<script>window.onload = playme</script>'; 
}