2017-09-12 126 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; 
}); 

让我知道这是否有帮助!

相关问题