【问题标题】:Twilio Video. I can display video without soundTwilio 视频。我可以无声显示视频
【发布时间】:2017-09-12 07:59:01
【问题描述】:

我正在测试 twillio 功能。后端(发送令牌,访问权限)工作正常。在前端部分,我从远程参与者那里获得了没有声音的视频。我们可以看到对方。我听不到他的声音,他也听不到我的声音。如何修复它?我想要声音,并且我想要选择静音/取消静音麦克风的声音,以便远程参与者听不到我的声音。如果您对我的代码有任何其他建议,请告诉我。

这是我的 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");
    });
});

【问题讨论】:

    标签: javascript jquery twilio


    【解决方案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;
    });
    

    如果有帮助,请告诉我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      相关资源
      最近更新 更多