2017-09-12 1 views
0

Je suis en train de tester les fonctionnalités de twillio. Le backend (envoyer des jetons, droits d'accès) fonctionne bien. Dans la partie frontend, je reçois la vidéo du participant distant sans son. On peut se voir. Je ne peux pas l'entendre et il ne peut pas m'entendre. Comment le réparer? Je voudrais avoir du son et j'aimerais avoir la possibilité de couper/activer le son de mon microphone afin que le participant à distance ne puisse pas m'entendre. Si vous avez d'autres suggestions à mon code s'il vous plaît faites le moi savoir.Twilio vidéo. Je peux afficher une vidéo sans son

Cela fait partie de mon html:

 <div class="container" id="conversation"> 
      <div> 
       <video id="localVideo" ></video> 
       <video id="patientVideo"></video> 
       <div class="buttons"> 
        <span> 
         <a href="{% url 'calendar' %}?day={{ request.GET.day }}"> 
          <img class="btn" id="call" src="{% static 'images/conversation/Finish-phone-call.png' %}" 
           alt="call"/></a> 
        </span> 
        <span> 
         <img class="btn" id="mute" src="{% static 'images/conversation/Icon-microphone-mute-01.png' %}" 
          alt="mute"/> 
         <img class="btn" id="unmute" src="{% static 'images/conversation/Icon-microphone-unmute-01.png' %}" 
          alt="mute"/> 
        </span> 
       </div> 

      </div> 

Cela fait partie de mon javascript. Ça marche. Je peux me connecter à la salle et je peux partager des vidéos entre les participants .:

var local_participant; 
var videoRoom; 

$("#call").click(function() { 
    sendNotification("Call canceled"); 
    if(videoRoom) { 
     videoRoom.disconnect(); 
    } 
}); 

$("#mute").click(function() { 
    $(this).hide("fast", function() { 
     $("#unmute").show(); 
     local_participant.audioTracks.forEach(function (audioTrack) { 
      audioTrack.enable(); 
     }); 
    }); 
}); 

$("#unmute").click(function() { 
    $(this).hide(function() { 
     $("#mute").show(); 
    }); 
    local_participant.audioTracks.forEach(function (audioTrack) { 
     audioTrack.disable(); 
    }); 
}); 

Twilio.Video.connect(doctor_token, {name: room_name}).then(function (room) { 

    videoRoom = room; 

    Twilio.Video.createLocalVideoTrack({audio: true}).then(function (localTrack) { 
     localTrack.attach("#localVideo"); 
     room.localParticipant.addTrack(localTrack); 
     local_participant = room.localParticipant; 
    }); 

    room.on('participantConnected', function (participant) { 
     console.log('Participant connected: ' + participant.identity); 
    }); 

    room.on('participantDisconnected', function (participant) { 
     console.log('Participant disconnected: ' + participant.identity); 
    }); 

    room.on('trackAdded', function (track, participant) { 
     console.log(participant.identity + " added track: " + track.kind); 
     track.attach("#patientVideo"); 
    }); 

    room.on('trackRemoved', function (track, participant) { 
     console.log(participant.identity + " removed track: " + track.kind); 
     track.detach("#patientVideo"); 
    }); 
}); 

Répondre

1

Twilio développeur évangéliste ici.

Dans votre code, vous obtenez la piste vidéo de l'utilisateur local en appelant:

Twilio.Video.createLocalVideoTrack({audio: true}) 

Cependant createLocalVideoTrack ne crée pas des pistes audio. Au lieu de cela, vous devez appeler createLocalTracks:

Twilio.Video.createLocalTracks() 

Les default options for createLocalTracks sont { video: true, audio: true } ce qui devrait être tout ce dont vous avez besoin. La promesse se résout avec un tableau de LocalTracks, vous devrez donc également mettre à jour votre code de rappel. Faites-moi savoir si cela aide!