【发布时间】:2021-02-18 16:30:29
【问题描述】:
对于 localParticipant 手动构建和发布的轨道,启用/禁用这些轨道显然对远程参与者没有影响。因此,例如,如果 localParticipant 想要将其音频静音,则远程参与者将继续接收该 localParticipant 的音频。
我找到了至少 2 种重现此错误的方法:
- 当参与者首次连接到房间时,如果参与者构建自己的轨道对象并将其作为连接选项传递,如下所示:
Twilio.Video.connect(twilioToken, {
name: roomName,
tracks: [LocalTrack|MediaStreamTrack] // The tracks array is constructed by converting from a MediaStream object containing 1 audio and 1 video track
})
这些曲目将成功发布,但不会注册其启用/禁用事件。
但是,如果参与者像这样连接到房间:
Twilio.Video.connect(twilioToken, {
name: roomName,
video: true,
audio: true,
})
为这些轨道触发轨道启用/禁用事件,当 localPartipants 禁用任何轨道时,远程参与者将收到通知。
- 当 localParticipant 发布手动构建的新轨道时,新轨道的启用/禁用事件不会触发到 remoteParticipants。
const newLocalAudioTrack = new Twilio.Video.LocalAudioTrack(newAudioTrack); //newAudioTrack is a MediaStreamTrack object
localParticipant.publishTrack(newLocalAudioTrack); // track gets successfully published
// Trying to disable track after track has been published and registered by the remoteParticipant
localParticipant.audioTracks.forEach((publication) => { publication.track.disable(); }); // This will not work and remote Participant will continue to receive audio, no disable event is registered by any remoteParticipants
项目环境:Node.js、Twilio-video@2.12.0、Twilio@3.56.0
如果您需要任何其他详细信息,请告诉我。
【问题讨论】:
-
你找到解决办法了吗,我还是有这个问题。
标签: twilio twilio-api twilio-video