我正在使用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
,但这似乎只是用于点对点通信 - 实际上,现在我更深入地研究了一下,我想这是正确的方法。它似乎是从客户端浏览器通信到主机 Web 服务器的方式,但是我尝试过的所有东西都没有接近工作。
我已经阅读了W3C 文档(我发现太抽象了),并且我已经阅读了HTML5 Rocks 上的文章(带来的问题比回答还多)。显然,我需要一种信令方法,有人可以建议哪种信令方法最适合发送媒体流,XHR、XMPP、SIP、Socket.io 还是其他什么?
我需要什么样的服务器支持接收 WebRTC?我的 Web 服务器正在运行基本的 LAMP 堆栈。
此外,等到 mediaStream
录制完成后再将其发送到服务器是否最好,还是在录制过程中就发送 mediaStream
?我想知道我是否正在正确处理这个。我已经使用 JavaScript 和 HTML5 编写了文件上传器,但是上传其中一个 mediaStreams
看起来比较复杂,我不确定是否正确的方法。
对此的任何帮助将不胜感激。