JavaScript - Audio en vivo con Socket.io

 
Vista:

Audio en vivo con Socket.io

Publicado por Juanky (1 intervención) el 23/01/2018 20:25:50
Hice una aplicación para enviar audio en vivo con Socket.io. El problema es que solo funciona entre pestañas en la misma ventana de Chrome. Cuando trato de enviar o recibir audio desde otro pc o incluso desde otra ventana, aparece este error:

1
GET blob:https://server/ce74cfe7-bb9c-40b0-9cb0-1138b22b1b11 404 (Not Found)

Este es el codigo en main.js (de la página):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$(document).ready(function(){
    var socket = io("https://server:4000", verify=false);
    socket.on('audio stream', function(blob){
        var video = document.querySelector('video');
        video.src = blob;
    });
    $('#ptt').click(function(){
        micOn();
        document.getElementById("ptt").disabled = true;
        document.getElementById("ptt-off").disabled = false;
    });
    $('#ptt-off').click(function(){
        stream.getAudioTracks()[0].stop();
        document.getElementById("ptt").disabled = false;
        document.getElementById("ptt-off").disabled = true;
    });
    function micOn(){
        navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
 
        var constraints = {
            audio: true,
            video: false
        };
        var video = document.querySelector('video');
 
        function successCallback(stream) {
            window.stream = stream; // stream available to console
            var blob = window.URL.createObjectURL(stream);
            socket.emit('audio stream', myName, blob);
        }
 
        function errorCallback(error) {
            console.log('navigator.getUserMedia error: ', error);
        }
 
        navigator.getUserMedia(constraints, successCallback, errorCallback);
    }
});
Este es el código en el servidor (index.js):
1
2
3
socket.on('audio stream', function(blob){
    socket.broadcast.emit('audio stream', blob);
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder