【问题标题】:Twilio-video: how to tell if a track is a screenshare?Twilio-video:如何判断曲目是否为屏幕共享?
【发布时间】:2017-09-22 02:17:44
【问题描述】:

现在在“room.on('trackAdded')”中,我无法判断添加的曲目是否是屏幕共享。有没有办法告诉?

【问题讨论】:

    标签: javascript twilio twilio-api


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    据我所知,每个轨道都是 VideoTrack 或 AudioTrack。屏幕共享将是一个 VideoTrack,但除此之外,它与来自摄像头源的另一个 VideoTrack 没有区别。

    编辑

    经过进一步研究,我发现以下内容:

    您可以设置一个name for LocalTracks,它会显示在远程端。例如,如果您创建一个新的MediaStreamTrack 即屏幕,并将publish that track 分配给您的本地参与者,那么您可以为其设置一个名称。

    localParticipant.publishTrack(screenVideoTrack, { name: 'screen' })
    

    然后,当您收到trackAdded 事件时,您可以检查轨道的名称属性:

    room.on('trackAdded', (track, participant) => {
      console.log(track.name);
    });
    

    【讨论】:

    • 这根本没有帮助。我需要将用户的相机供稿放在一个位置,并将屏幕供稿放在另一个位置。应该有一种方法可以分辨出哪个是哪个,哪个是摄像头和屏幕。
    • @Nishant 你让我质疑自己,谢谢。事实证明,您可以通过为曲目设置名称来判断。请参阅我的答案的编辑。
    • 哈哈,我想通了,来这里补充一下答案。很高兴看到你做得更好。谢谢+1。
    【解决方案2】:

    谢谢@philnash,我正在使用建议的行为。

    但是对于 Twilio 2.x,它似乎被打破了。根据documentation,在本地轨道创建期间需要指定选项(添加名称):

    const newScreenLocalTrack = new Twilio.Video.LocalVideoTrack(newScreenTrack, {name: 'screen'})
    

    然后只发布创建的曲目,不带任何选项:

    localParticipant.publishTrack(newScreenLocalTrack)
    

    【讨论】:

    • 谢谢@Liana!你的回答真的很有帮助!
    • 谢谢莉安娜!这比 philnash 的回答要好得多,因为这设置了预发布曲目的名称。允许在发布前将曲目存储在各个地方,并以其他方式对其进行操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多