2017-09-12 125 views
0

我正在測試twillio功能。後端(發送令牌,訪問權限)工作正常。在前端部分,我從遠程參與者那裏獲取沒有聲音的視頻。我們可以看到對方。我聽不到他,他聽不到我。如何修復它?我想要有聲音,我希望可以選擇將麥克風靜音/取消靜音,以便遠程參與者聽不到我的聲音。如果您對我的代碼有任何其他建議,請告訴我。Twilio視頻。我可以顯示沒有聲音的視頻

這是我的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> 

這是我的JavaScript的一部分。有用。我可以連接到房間,我可以在這裏參加者之間分享視頻:

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

讓我知道這是否有幫助!

相關問題