Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将音频从用户麦克风传输到浏览器上的多个用户_Javascript_Html_Node.js_Socket.io_Webrtc - Fatal编程技术网

Javascript 将音频从用户麦克风传输到浏览器上的多个用户

Javascript 将音频从用户麦克风传输到浏览器上的多个用户,javascript,html,node.js,socket.io,webrtc,Javascript,Html,Node.js,Socket.io,Webrtc,现在我正在使用Node.js到Javascript从一个用户获取麦克风音频数据,并让其他人通过浏览器收听该用户的麦克风音频。我现在正试图用socket.io实现这一点。我怎样才能做到这一点?现在我可以发送消息,但不能发送音频或简单的音频文件。如果我能现场直播用户的麦克风音频,那就太棒了。任何简单的客户机/服务器代码示例都将不胜感激。我已经读了好几个小时了,所有的事情看起来都很混乱如果问题太难,我也有一个wav文件,但我如何发送该文件?请帮助 这是我目前的代码 Server.js var http

现在我正在使用Node.js到Javascript从一个用户获取麦克风音频数据,并让其他人通过浏览器收听该用户的麦克风音频。我现在正试图用socket.io实现这一点。我怎样才能做到这一点?现在我可以发送消息,但不能发送音频或简单的音频文件。如果我能现场直播用户的麦克风音频,那就太棒了。任何简单的客户机/服务器代码示例都将不胜感激。我已经读了好几个小时了,所有的事情看起来都很混乱如果问题太难,我也有一个wav文件,但我如何发送该文件?请帮助

这是我目前的代码

Server.js

var http = require("http");
var io = require('socket.io');
var server = http.createServer(function (request, response) {
    response.writeHead(200, {
        "Content-Type": "text/html"
    });
    response.write("WebSocket Start~~~~~~~~~~~~");
    response.end("");
}).listen(8080);

var socket = io.listen(server);

socket.on('connection', function (client) {

    client.on('client-stream-request', function (data) {
        var stream = ss.createStream();
        var filename = __dirname + '/downloads/' + < YOURSONG.MP3 > ;
        ss(socket).emit('audio-stream', stream, {
            name: filename
        });
        fs.createReadStream(filename).pipe(stream);
    });


    client.on('message', function (event) {
        console.log('Received message from client!', event);
        client.receive audio from user 1 browser mic ? ? ? ? ? ? ? ?
            client.emit('emitMessage', {
                hello: 'messgge received, wish you happy' + new
                Date().toString()
            });
    });
    client.on('disconnect', function () {
        // clearInterval(interval); 
        console.log('Server has disconnected');
    });
    client.send('hello, I am the server');
    client.send user 1 browser mic audio to everyone connected to the server ? ? ? ? ? ?
});
var http=require(“http”);
var io=require('socket.io');
var server=http.createServer(函数(请求、响应){
书面答复(200{
“内容类型”:“文本/html”
});
回答。写(“WebSocket开始”~~~~~~~~~~~~~~~”;
答复.结束(“”);
}).听(8080);
var socket=io.listen(服务器);
socket.on('connection',函数(客户端){
client.on('client-stream-request',函数(数据){
var stream=ss.createStream();
var filename=uu dirname+'/downloads/'+;
ss(套接字).emit('audio-stream',stream{
名称:文件名
});
fs.createReadStream(文件名).pipe(流);
});
client.on('message',函数(event){
log('从客户端收到消息!',事件);
客户端。从用户1浏览器麦克风接收音频?
client.emit('emitMessage'{
您好:'收到messgge,祝您快乐'+新
Date().toString()
});
});
client.on('disconnect',function(){
//间隔时间;
log('服务器已断开连接');
});
send('你好,我是服务器');
client.send user 1 browser麦克风音频给连接到服务器的所有人?
});
这是我的客户代码

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        div {
            border-radius: 10px;
            border: 2px solid pink;
            width: 800px;
        }
    </style>
</head>

<body>
    <h1></h1>
    <div id="result"></div>
    <script src="http://localhost:8080/socket.io/socket.io.js"></script>
    <script>
        //创建Socket.IO实例,建立连接

        var socket = io.connect('http://localhost:8080');

        var audio = document.getElementById('player');
        ss(socket).on('audio-stream', function (stream, data) {
            parts = [];
            stream.on('data', function (chunk) {
                parts.push(chunk);
            });
            stream.on('end', function () {
                audio.src = (window.URL || window.webkitURL).createObjectURL(new Blob(parts));
                audio.play();
            });
        });

        // 添加一个连接监听器
        socket.on('connect', function () {
            console.log('Client has connected to the server!');
        });

        // 添加一个连接监听器
        socket.on('message', function (data) {
            document.getElementById("result").innerHTML += data + "<br />";

        });
        socket.on('emitMessage', function (data) {
            document.getElementById("result").innerHTML += data.hello + "<br />";

        });

        // 添加一个关闭连接的监听器
        socket.on('disconnect', function () {
            console.log('The client has disconnected!');
        });

        // 通过Socket发送一条消息到服务器
        function sendMessageToServer(message) {
            socket.send(message);
        }
        var date = new Date();
        var ms = "Time: " + date.toString() + "Today is a nice day, wish you happy";
        setInterval("sendMessageToServer(ms)", 1000);
    </script>

</body>

</html>

在此处插入标题
div{
边界半径:10px;
边框:2件纯红;
宽度:800px;
}
//创建Socket.IO实例,建立连接
var socket=io.connect('http://localhost:8080');
var audio=document.getElementById('player');
ss(套接字).on('audio-stream',函数(流,数据){
部分=[];
stream.on('data',函数(块){
零件。推(块);
});
stream.on('end',function(){
audio.src=(window.URL | | window.webkitURL).createObjectURL(新Blob(部分));
音频播放();
});
});
// 添加一个连接监听器
socket.on('connect',function(){
log('客户端已连接到服务器!');
});
// 添加一个连接监听器
socket.on('message',函数(数据){
document.getElementById(“结果”).innerHTML+=data+“
”; }); socket.on('emitMessage',函数(数据){ document.getElementById(“结果”).innerHTML+=data.hello+“
”; }); // 添加一个关闭连接的监听器 socket.on('disconnect',function(){ log('客户端已断开连接!'); }); // 通过插座发送一条消息到服务器 函数sendMessageToServer(消息){ socket.send(消息); } 变量日期=新日期(); var ms=“Time:”+date.toString()+“今天是美好的一天,祝你快乐”; setInterval(“sendMessageToServer(ms)”,1000;