我浏览了发布者文档,该文档具有方法publishVideo(value)
和publishAudio(value)
。
对应于视频部分,订户收到事件videoDisabled
或videoEnabled
的原因publishVideo
使我可以确定所订阅的参与者是否故意关闭了他们的视频,但是我找不到类似audioDisabled
或audioEnabled
的音频。据推测,audioBlocked
事件仅涵盖浏览器自动播放策略Dispatched when the subscriber's audio is blocked because of the browser's autoplay policy
的阻止。
audioLevelUpdated
事件提供了当前的音频电平,但这可能只是静音,而不是有意的静音,因此对于此目的而言似乎并不理想。
我希望在已订阅参与者通过调用publishAudio()
方法有意关闭其音频时在其上显示一个音频静音图标。如何实现?
参考文档:
订户事件:https://tokbox.com/developer/sdks/js/reference/Subscriber.html#events
发布者方法:https://tokbox.com/developer/sdks/js/reference/Publisher.html#methods
答案 0 :(得分:1)
您尝试过audioLevelUpdated并检查音频级别
如果级别为0,则静音。
https://tokbox.com/developer/sdks/js/reference/Subscriber.html#getAudioVolume
因此,步骤是侦听audioLevelUpdated并检查AudioVolume,音频音量应为u订户级别点。
答案 1 :(得分:1)
每个流都有一个 hasAudio
属性,如果用户的音频被静音或他们的麦克风被静音,该属性将返回 false。同样,流也有一个 hasVideo
属性。您可以在 https://tokbox.com/developer/sdks/js/reference/Stream.html 处参考流文档。
我个人是这样使用它的:
session.streams.forEach((stream) => {
const name = stream.name;
const video = stream.hasVideo;
const audio = stream.hasAudio;
});
您可以使用 session.on('streamPropertyChanged')
事件监听这些更改:https://tokbox.com/developer/sdks/js/reference/StreamPropertyChangedEvent.html