我在我的web会议上集成了屏幕共享功能,屏幕共享内容将在屏幕共享开始之前显示在会话中的用户,但它不适用于屏幕共享开始后加入会话的用户。下面是新用户加入会话时获取视频轨迹的逻辑。
// Add current users
this.meetingSession.remoteUsers.forEach(async ru => {
if (ru.uid.search('screen_') > -1) {
this.getScreenShare(ru);
return;
}
let remoteVideo = await this.meetingSession.subscribe(ru, 'video');
this.setVideoAudioElement(ru, 'video');
let remoteAudio = await this.meetingSession.subscribe(ru, 'audio');
this.setVideoAudioElement(ru, 'audio');
})
async getScreenShare (user) {
...
this.currentScreenTrack = user.videoTrack;
// Here user.videoTrack is undefined
console.log(user)
...
},
创建新用户的会话后,我从"remoteUsers"获取当前用户的视频轨迹。会话对象中的对象。普通用户的视频轨迹没有问题,但是Screen Share对象说"hasVideo"是真的,但是"videoTrack"是未定义的。
Agora Web SDK meetingSession。remoteUsers屏幕共享对象
是否说明videoTrack不包含在meetingSession中?屏幕共享的remoteUsers ?
我想知道人们使用什么方法来为在屏幕共享期间加入会话的用户显示屏幕共享内容。
如果有人能给我一些建议就太好了。
"agora-rtc-sdk-ng"^ 4.6.2",
我想明白了。我只需要订阅远程用户。
this.meetingSession.remoteUsers.forEach(async ru => {
if (ru.uid.search('screen_') > -1) {
// Just needed to subscribe the user...
await this.meetingSession.subscribe(ru, 'video');
this.getScreenShare(ru);
return;
}
let remoteVideo = await this.meetingSession.subscribe(ru, 'video');
this.setVideoAudioElement(ru, 'video');
let remoteAudio = await this.meetingSession.subscribe(ru, 'audio');
this.setVideoAudioElement(ru, 'audio');
})