node.js - 使用 socket.io-stream 从 getUserMedia() 广播流
问题描述
为了改进我的 VoIP 应用程序,我想创建一个实时音频流,所以我成功创建了一个我可以听到的音频流,但现在我需要将流发送到服务器,然后服务器将它重新发送给每个人,然后每个人都玩它。
服务器代码(不工作,导致错误):
var streamToSend = ss.createStream();
ss(socket).emit('voice', streamToSend);
ss(socket).on("voice", function(stream) {
stream.pipe(streamToSend);
});
要发送的客户端代码(不工作,导致错误):
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
console.log('getUserMedia supported.');
navigator.mediaDevices.getUserMedia(
{
audio: true
})
.then(function (streamm) {
ss(socket).emit('voice', streamm);
});
} else {
console.log('getUserMedia not supported on your browser!');
}
要接收的客户端代码(未测试接收):
ss(socket).on("voice", function(stream) {
var context = new AudioContext({
latencyHint: 'interactive',
sampleRate: 44100,
});
var source = context.createMediaStreamSource(stream);
source.connect(context.destination);
});
而且出于安全考虑,我真的很想使用这种方法(我可以轻松加密数据)。我会很感激任何帮助:D
解决方案
推荐阅读
- ajax - 我无法将 Datatables ajax 请求中的变量传递给控制器
- javascript - 在 Google Colab 上执行任何单元格时出现浏览器弹出消息错误
- javascript - 如何使用为多个角色生成的 Passport.js 验证 JWT 令牌?
- python - 如何使用python将多个pdf中的表导入单个数据框?
- python - 在python中挑选包含特定单词的短语
- flutter - Flutter 的 Cloud Firestore 文档
- assembly - 汇编中标签和函数之间的区别 - 英特尔语法
- javascript - 使用 KonvaJs-ReactJs 动态渲染对象
- r - 如何测试函数参数是否是“quosurable”名称?
- javascript - 为什么javascript上的代码innerHTML不起作用?