我正在尝试发送视频和音频trought socket.io,但我最终我将如何处理它?</ p>
这是我的代码:
服务器,这里我收回缓冲区:
io.on('connection', function (socket) {
socket.on('radio', function (image) {
socket.broadcast.emit('radio-reciver', {count: 1, buff: image});
})
})
http.listen(port, function () {
console.log('Server started!')
});
客户端:
//发送视频/音频的部分
navigator.getUserMedia({ video: true, audio: true }, loadCam, loadFail)
function loadCam(stream) {
video.src = window.URL.createObjectURL(stream);
var media = new MediaRecorder(stream);
media.ondataavailable = function (e) {
socket.emit('radio', e.data);
}
media.start(1000)
logger("Cam is ok")
}
//收回的部分,此处我收回缓冲区
socket.on('radio-reciver', function (image) {
var sourceStream = MediaSourceStream({ // Creates a writable stream
mimeType: 'video/webm; codecs="opus,vp8"'
})
image.pipe(sourceStream)
var img = document.getElementById('play');
img.src = window.URL.createObjectURL(sourceStream.mediaSource);
$('#logger').text(image);
})
如您所见,我正在使用媒体记录器传输数据但无法正常工作......如何解决此问题?
答案 0 :(得分:0)
您应该使用:
而不是image.pipe()
sourceStream.write(image);
你将在这里接收块作为Buffer对象。不是一个流。