2017-09-12 1 views
0

twillio 기능을 테스트하고 있습니다. 백엔드 (토큰, 액세스 권한 보내기)는 정상적으로 작동합니다. 프론트 엔드 파트에서는 ​​원격 참가자가 소리없이 비디오를 얻습니다. 우리는 서로를 볼 수 있습니다. 나는 그 사람의 말을들을 수없고 나를들을 수 없다. 어떻게 수리해야합니까? 소리를 내고 싶습니다. 원격 참가자가 내 말을들을 수 없도록 마이크에서 소리를 음소거/음소거 해제 할 수있는 옵션을 원합니다. 내 코드에 대한 다른 제안 사항이 있으면 알려주십시오.Twilio 비디오. 소리없이 비디오를 표시 할 수 있습니다.

 <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> 

이 내 자바 스크립트의 일부입니다

이 내 HTML의 일부입니다. 그것은 작동합니다. 나는 방에 연결할 수 있으며 참가자들간에 비디오를 공유 할 수 있습니다. :

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

답변

1

Twilio 개발자 전도사는 여기입니다. 코드에서

당신은 호출하여 로컬 사용자의 비디오 트랙을 얻을 :

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

그러나 createLocalVideoTrack는 오디오 트랙을 만들지 않습니다. 대신 createLocalTracks를 호출해야합니다 :

Twilio.Video.createLocalTracks() 

default options for createLocalTracks{ video: true, audio: true }이다 그래서 모두 당신이 필요로해야한다. 약속은 LocalTracks 배열로 해결되므로 콜백 코드도 업데이트해야합니다.

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

도움이 될지 알려주세요.

관련 문제