【问题标题】:"trackPublished" event not firing in twilio-video Javascript SDk“trackPublished”事件未在 twilio-video Javascript SDK 中触发
【发布时间】:2018-06-19 10:02:33
【问题描述】:

我有以下代码:

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

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

我可以验证曲目实际上已发布到房间,但仍然没有触发“trackPublished”事件。

twilio-video 在 1.6.1 铬:63 Ubuntu:16.04

【问题讨论】:

  • 奇怪的是事件没有触发。您能否尝试使用createLocalTracks 而不是仅使用来自getUserMediaMediaStreamTracks 来获取LocalTracks 的数组。此外,1.7.0 已经发布,因此可能也值得升级到最新版本。
  • 更新到 1.7.0 并尝试使用提到的 createLocalTracks,但仍然没有触发。

标签: video-streaming html5-video twilio vp8 vp9


【解决方案1】:

这里是 Twilio 开发者宣传员。

我看到你问过this question on GitHub too。只是想在这里为后代添加答案:

很抱歉,您遇到了这个问题。我相信这种行为是设计使然。在连接解析之前,SDK 可能会了解一些在连接时成功发布的 Track(例如,您在示例中发布的 LocalAudioTrack 和 LocalVideoTrack)。这些将在 LocalParticipant 的 trackPublications 集合上同步可用,因此我们不会为这些引发“trackPublished”事件。我们只为在连接期间未完成发布或在连接后通过 publishTrack 发布的 LocalTrack 引发“trackPublished”事件。不过,我看到我们没有在CHANGELOG.md 中提及这一点。很抱歉!

有一个updated code sample on GitHub too

【讨论】:

  • 如果在连接解析之前 trackPublication 失败会发生什么?在这种情况下会触发trackPublicationFailed 事件吗?如果没有,我怎么知道 trackPublication 是否失败?
  • 我将把这个问题留给 GitHub 问题来回答,因为构建平台的实际工程师正在那里做出响应,这就是您想要从中获取信息的地方!
  • 谢谢菲尔!我要感谢您提供的所有帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
相关资源
最近更新 更多