Tôi đang làm việc trên một phần mềm phát sóng, bằng cách sử dụng các mô hình máy chủ-khách hàng.Video + dữ liệu âm thanh bị bắt trong trình duyệt của đài truyền hình bằng cách sử dụng getUserMedia và MediaRecorder API. Dữ liệu bỏ mỗi ~ 200ms bằng cách sử dụng setInterval và gửi đến máy chủ thông qua WebSockets.Hệ phục vụ sau đó sẽ phát sóng các đốm màu đã nhận được một danh sách các khách hàng nhận.Người nhận có một yếu tố mã nguồn mà được thiết lập để một đối tượng MediaSource, trong đó có một sourceBuffer nguyên tố và dữ liệu được gắn vào nó mỗi khi khách hàng nhận được dữ liệu từ máy chủ WebSocket.Vấn đề là rằng video không thực sự chơi và nó vẫn trong trạng thái liên tục đệm và nó chỉ cho thấy khung đầu tiên nó nhận được. Tôi Tuy nhiên có thể chơi mỗi đoạn nhận được (cả hai âm thanh và video) bằng cách đặt lại nguồn video đến url tạo ra cho mỗi blob và sau đó gọi điện thoại video.play(), do đó, các dữ liệu nhận được và phát sóng của máy chủ là nguyên vẹn. (tâm trí bạn, phương pháp "đệm" này có một tác dụng phụ rất khó chịu: video yếu tố nhấp nháy trắng mỗi khi play() được gọi là).Đây là mã cho người nhận
đang được dịch, vui lòng đợi..