Twilio-video:如何判断曲目是否为屏幕共享?

y_a*_*arl 3 javascript twilio twilio-api

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

phi*_*ash 8

Twilio 开发人员布道者在这里。

据我所知,每个音轨都是 VideoTrack 或 AudioTrack。屏幕共享将是一个 VideoTrack,但除此之外,没有什么可以将它与来自摄像机源的另一个 VideoTrack 区分开来。

编辑

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

您可以LocalTrack显示在远程端的s设置一个名称。例如,如果您创建一个新MediaStreamTrack的屏幕,并将该轨道发布给您的本地参与者,那么您可以为其设置一个名称。

localParticipant.publishTrack(screenVideoTrack, { name: 'screen' })
Run Code Online (Sandbox Code Playgroud)

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

room.on('trackAdded', (track, participant) => {
  console.log(track.name);
});
Run Code Online (Sandbox Code Playgroud)


小智 7

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

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

const newScreenLocalTrack = new Twilio.Video.LocalVideoTrack(newScreenTrack, {name: 'screen'})
Run Code Online (Sandbox Code Playgroud)

然后只发布创建的轨道,没有任何选项:

localParticipant.publishTrack(newScreenLocalTrack)
Run Code Online (Sandbox Code Playgroud)