2014-07-16 52 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>'; 
}