Không đọc được stream gửi lên từ Socket.io



  • Mình đang sử dụng socket.io để nhận stream từ client code mình như sau
    client 1:
    var video = document.getElementById("video");
    var stream = video.captureStream();
    socket.emit('client-sent-stream', stream)

    server:
    socket.on('client-sent-stream', function(stream) {
    io.to(socket.id).emit('server-send-stream', stream)
    })

    client 2:
    socket.on('server-send-stream', function(stream) {
    var videoCapture = document.getElementById("videoCapture")
    videoCapture.srcObject = stream
    videoCapture.play()
    })
    Sau khi run thì màn hình bên client 2 bị lỗi như hình bên dưới. Mọi người biết lỗi do đâu không ạ. Thank all
    0_1535902216173_image.png



  • Vì stream bạn nhận về từ server không phải type mà srcObject accept. Cái bạn nhận về là string data -> Bạn cần convert về kiểu mà src object accept. https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/srcObject
    Trong đây ghi các kiểu mà bên HTML5 accept. Bạn thử xem cách nảo merge vào không. Với nữa từng các data của bạn là gói tin. Khi bạn thực hiện toán tử = -> Override lên nó. Lúc này bạn lên nghĩ về index DB để store theo thứ tự gói tin nhận rồi xử lí nhé.


Log in to reply