提问者:小点点

Twilio video on参与者{禁用}VideoTrack冻结视频


我在角8中使用了twilio-video: 1.19.2

我已经实现了一对一视频通话的功能。

下面是我用来启用/禁用视频的代码。

toggleVideo() {
    this.videoConference.isPaused = !this.videoConference.isPaused;
    this.twilioRoom.localParticipant.videoTracks.forEach(track => {
        if (this.videoConference.isPaused) {
            track.disable();
        } else {
            track.enable();
        }
    });
}

视频通话似乎工作正常。但是当我在参与者端暂停视频时,只会显示一段时间的黑屏。大多数情况下,它会冻结视频(最后录制的帧会保留)。

这个问题是在react-twilio库上报告的https://github.com/blackuy/react-native-twilio-video-webrtc/issues/165

有人知道如何解决这个问题吗?

有没有办法添加黑色(视频轨道)屏幕?

当视频从参与者端暂停时,我想显示黑屏。


共2个答案

匿名用户

Twilio开发者布道者在这里。

在这种情况下,您需要做的是处理远程用户禁用他们的曲目并将其从本地视图中删除。

要执行此操作,您可以侦听参与者trackDownt事件并相应地处理它。

remoteParticipant.on('trackDisabled', track => {
  // hide or remove the media element related to this track
});

您应该确保编写代码来处理再次启用的轨道:

remoteParticipant.on('trackEnabled', track => {
  // show the track again
});

匿名用户

如何参与音轨禁用。

//参与者是所有与房间连接的参与者。对于例如。User-1屏幕页面参与者User-2、User-3和User-4。

participant.audioTracks.forEach(function (track) {
//sid is disable Audio track Particular Participant sid. For Ex. User-1 Screen Participant User-3 audio disable using audio track sid It is Possible. If Possible give me code or reference url link.
if (track.sid == sid) {
//participant audio track disable.
     track.disable();
}
else {
     //participant audio track enable.
     track.enabled();
}
});

任何方式另一种方式请给代码或参考URL链接我这样做。