Javascript 在整个会话中播放声音

Javascript 在整个会话中播放声音,javascript,php,audio,Javascript,Php,Audio,我为自己制作了一个小型聊天客户端,供我的父亲使用,他正在学习这一切是如何运作的。无论如何,我想有一个按钮,可以在登录的会话中播放声音。比如说,如果我全家都登录聊天,我需要让他们都能听到这个声音 我所拥有的是。。。嗯,我有一个按钮,当我点击它时会播放声音,但我是唯一听到它的人 有办法做到这一点吗 HTML: 我会通过在头部导入jquery来解决这个问题 <head> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.

我为自己制作了一个小型聊天客户端,供我的父亲使用,他正在学习这一切是如何运作的。无论如何,我想有一个按钮,可以在登录的会话中播放声音。比如说,如果我全家都登录聊天,我需要让他们都能听到这个声音

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

有办法做到这一点吗

HTML:


我会通过在头部导入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:

Javascript:

  function playme (url){
        var audio=document.createElement("audio");
        audio.src=url;
        audio.play();
    }
<script>
function clear(){
$.ajax({
type:'POST',
url:'clear.php',
success: function(resp){
}
});
</script>
在clear.php中

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

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

假设这真的是一个没有jquery或xmlhttprequest的简单聊天客户端,并且您在$\u会话中跟踪收到的消息,那么您需要做的是将php表单上收到的消息与保存的消息进行比较,并添加javascript以在收到新消息时播放音频。例如

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

假设您的聊天是基于服务器的。当您单击需要通知服务器的按钮时,服务器必须通知连接的客户端他们必须播放声音。好的。。。我该怎么做呢?您需要编写一些服务器端代码来接受来自客户端的消息,并编写客户端代码来发送消息和侦听通知。服务器端代码在接收到消息时将看到连接了哪些客户端,并向每个客户端发送通知。当客户端收到通知消息时,您让客户端代码播放声音。
<?php 
file_put_contents("audio.txt", "");
?>
if($_SESSION('last_message') != $input_message)
{
    echo '<script>window.onload = playme</script>';
}