我正在使用捕获音频数据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);
});
Run Code Online (Sandbox Code Playgroud)
如何将其发送mediaStream到服务器?
谷歌搜索后我一直在调查WebRTC,但这似乎只是为了点对点通信 - 实际上,现在我正在研究这个,我认为这是要走的路.它似乎是从客户端的浏览器到主机网络服务器的通信方式,但我尝试的任何东西都接近工作.
我一直在阅读W3C文档(我发现它太抽象了),而且我一直在通过这篇关于HTML5 Rocks的文章(提出的问题多于答案).显然我需要一种信令方法,任何人都可以建议哪种信令方法最适合发送mediaStreams,XHR,XMPP,SIP,Socket.io或其他什么?
我需要在服务器上支持WebRTC的接收?我的Web服务器正在运行一个基本的LAMP堆栈.
另外,最好mediaStream是在我将其发送到服务器之前等到完成录制,还是最好发送mediaStream正在录制的内容?我想知道我是否正在以正确的方式做这件事.我已经用javascript和HTML5编写了文件上传器,但是上传其中一个mediaStreams看起来更加复杂,我不确定我是否正确接近它.
任何有关这方面的帮助将不胜感激.
有没有办法将webrtc的getUserMedia(视频和音频)创建的本地blob流式传输到Icecast服务器,从而可以使用HTML5进行直播?
特别是在下面的例子中(来自Justin Uberti的2012年Google I/O视频),我可以捕获音频/视频并在视频元素中本地播放:
<script type="text/javascript">
var onGotStream = function(stream) {
var url = webkitURL.createObjectURL(stream);
video.src = url; //
}
navigator.webkitGetUserMedia({video: true, audio: true}, onGotStream, null);
<script>
<video = id='video' autoplay='autoplay'/>
Run Code Online (Sandbox Code Playgroud)
但是,我没有将视频src设置为本地blob,而是将流发送到Icecast服务器,然后使用指向Icecast服务器的视频元素播放该直播流.
这可能吗?我该怎么办呢?
谢谢!!