2017-09-12 3 views
0

Ich teste Twillio-Funktionalität. Das Backend (Senden von Token, Zugriffsrechte) funktioniert einwandfrei. Im Frontend Teil bekomme ich das Video von remote Teilnehmer ohne Ton. Wir können uns sehen. Ich kann ihn nicht hören und er kann mich nicht hören. Wie man es repariert? Ich würde gerne Ton haben und ich hätte gerne die Option, den Ton von meinem Mikrofon zu stummzuschalten, so dass der entfernte Teilnehmer mich nicht hören kann. Wenn Sie weitere Vorschläge zu meinem Code haben, lassen Sie es mich bitte wissen.Twilio Video. Ich kann Video ohne Ton anzeigen

Dies ist Teil meiner 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> 

Dieser Teil meiner Javascript ist. Es klappt. Ich kann mit dem Raum verbinden und ich kann Videos zwischen den Teilnehmern teilen .:

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"); 
    }); 
}); 

Antwort

1

Twilio Entwickler Evangelist hier.

In Ihrem Code erhalten Sie die Videospur des lokalen Benutzers durch den Aufruf:

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

jedoch createLocalVideoTrack schafft keine Audio-Tracks. Stattdessen sollten Sie createLocalTracks nennen:

Twilio.Video.createLocalTracks() 

Die default options for createLocalTracks sind { video: true, audio: true } so sollte das sein alles, was Sie brauchen. Das Versprechen löst mit einem Array von LocalTracks, so dass Sie Ihren Rückrufcode auch aktualisieren müssen.

Twilio.Video.createLocalTracks().then(function (localTracks) { 
    localTracks.forEach(function(localTrack) { 
    localTrack.attach("#localVideo"); 
    room.localParticipant.addTrack(localTrack); 
    }) 
    local_participant = room.localParticipant; 
}); 

Lassen Sie mich wissen, wenn das hilft!