代码之家  ›  专栏  ›  技术社区  ›  lightbringer

twilio视频Javascript SDk中未触发“trackPublished”事件

  •  1
  • lightbringer  · 技术社区  · 7 年前

    我有以下代码:

    $.getJSON('/video/getToken', function (data, status) {
        identity = data.identity;
        navigator.mediaDevices.getUserMedia({
            audio: true,
            video: {width: 320, height: 240}
        })
            .then(function (mediaStream) {
                console.log("Obtained " + mediaStream.getTracks() +" from local and joining room" + roomName);
                var connectOptions = {
                    name: roomName,
                    logLevel: 'off',
                    tracks: mediaStream.getTracks(),
                    preferredVideoCodecs: ['VP9', 'VP8']
                };
                return Video.connect(data.token, connectOptions);
            })
            .then(roomJoined)
            .catch(function (error) {
                log('Could not connect to Twilio: ' + error.message);
            });
    });
    
    function roomJoined(room) {
        const localParticipant = room.localParticipant;
        localParticipant.on('trackPublicationFailed', function(error, localTrack){
            console.log('Failed to publish track %s to room "%s": %s', localTrack,roomName, error.message);
        });
    
        localParticipant.on('trackPublished', function(localTrackPublication){
            console.log('Succesfully published track %s  with name %s to room "%s"', localTrackPublication.trackSid, localTrackPublication.trackName, roomName);
        });
    }
    

    根据文档,“trackPublished”事件是在参与者将媒体发布到房间并且“trackPublished失败”时触发的 发布失败时激发事件。然而,在我的情况下,似乎没有发生任何事件。

    我可以确认这些曲目实际上已发布到房间中,但“trackPublished”事件仍未触发。

    twilio视频1.6.1 铬:63 Ubuntu:16.04

    1 回复  |  直到 7 年前
        1
  •  1
  •   philnash    7 年前

    Twilio开发者布道者。

    我知道你问了 this question on GitHub too . 只是想在这里为子孙后代补充一个答案:

    很抱歉你遇到了这个。我相信这种行为是故意的。在connect解析之前,SDK可能会了解一些在连接时成功发布的曲目集(例如,您在示例中发布的LocalAudioTrack和LocalVideoTrack)。这些将在LocalParticipant的trackPublications集合中同步可用,因此我们不会为这些事件引发“trackPublications”事件。我们仅通过publishTrack为连接期间未完成发布或连接之后发布的LocalTracks引发“trackPublished”事件。我看到我们在 CHANGELOG.md 虽然很抱歉!

    有一个 updated code sample on GitHub too .