【发布时间】:2023-04-10 08:30:01
【问题描述】:
我正在使用 getUserMedia() 捕获音频数据,我想将其发送到我的服务器,以便将其保存为 MySQL 字段中的 Blob。
这就是我想要做的。我已经多次尝试使用 WebRTC 进行此操作,但目前我什至不知道这是否正确,甚至是最好的方法。
任何人可以帮助我吗?
这是我用来从麦克风捕获音频的代码:
navigator.getUserMedia({
video:false,
audio:true,
},function(mediaStream){
// output mediaStream to speakers:
var mediaStreamSource=audioContext.createMediaStreamSource(mediaStream);
mediaStreamSource.connect(audioContext.destintion);
// send mediaStream to server:
// WebRTC code? not sure about this...
var RTCconfig={};
var conn=new RTCPeerConnection(RTCconfig);
// ???
},function(error){
console.log('getUserMedia() fail.');
console.log(error);
});
如何将此mediaStream 发送到服务器?
在谷歌搜索之后,我一直在研究 WebRTC,但这似乎只是为了点对点通信 - 实际上,现在我正在研究更多,我认为这是要走的路。这似乎是从客户端浏览器到主机网络服务器的通信方式,但我尝试的任何方法都无法正常工作。
我一直在经历the W3C documentation(我觉得它太抽象了),我一直在经历this article on HTML5 Rocks(提出的问题多于答案)。显然我需要一种信令方法,谁能建议哪种信令方法最适合发送 mediaStreams、XHR、XMPP、SIP、Socket.io 或其他东西?
服务器上需要什么来支持 WebRTC 的接收?我的网络服务器正在运行一个基本的 LAMP 堆栈。
另外,最好等到mediaStream 完成录制后再将其发送到服务器,还是在录制时发送mediaStream 更好?我想知道我是否以正确的方式去做这件事。我已经用 javascript 和 HTML5 编写了文件上传器,但上传其中一个 mediaStreams 似乎要复杂得多,我不确定我是否正确。
对此的任何帮助将不胜感激。
【问题讨论】:
-
您只想存储录制的文件吗?如果是这样,您可以将 blob 上传到可以保存它的服务器。或者您是否希望您的服务器能够从客户端获得实时流并让服务器处理录制?
-
我只是想把录制的文件保存在服务器上。
标签: javascript jquery audio webrtc getusermedia