首页 > 解决方案 > Twilio 中 RemoteAudioTrack 的“静音”条件检测

问题描述

当此事件发生时,我面临着检测静音(禁用)轨道的挑战:

Room.on("trackSubscribed", (track, participant))

连接轨道后,我可以稍后订阅单独的轨道事件(启用/禁用),但是如果轨道在连接时被静音,我该如何确定?

track当我查看跟踪属性(事件后的控制台日志trackSubscribed)时,有一个mediaStreamTrack内部,它有:

-enabled (true)
-muted (false)

但是,无论轨道在初始连接时是否静音,这两个属性始终设置为上述值。

这是一个错误还是我做错了?

标签: twiliotwilio-api

解决方案


我知道这是一个旧线程,但我设法做到了。我听这样的订阅曲目:

this.remoteParticipant.tracks.forEach(publication => {
    publication.on('subscribed', track => this.onTrackSubscribed(track))
    .on('unsubscribed', track => this.twilioService.detachRemoteTrack(track));
});

其中 remoteParticipant 是 RemoteParticipant 类型。并通过以下方法初始化参与者“isMuted”变量:

function onTrackSubscribed(track) {
    if (track.kind === 'audio') {
        this.isMuted = !track.isEnabled;
        track.on('disabled', (track) => this.isMuted = true);
        track.on('enabled', (track) => this.isMuted = false);
    }
}

这应该为所有参与者完成,但在我的情况下只有一个。希望能帮助到你!


推荐阅读