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