This commit is contained in:
parent
1674f227a3
commit
ad0f89b16f
|
|
@ -257,15 +257,16 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取房间用户
|
// 获取房间用户
|
||||||
const getRoomUser = async (): Promise<void> => {
|
const getRoomUser = async (callBack: Function): Promise<void> => {
|
||||||
await GetRoomUser(state.channelId).then(res => {
|
await GetRoomUser(state.channelId).then(res => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
setRoomUserList(res.data)
|
setRoomUserList(res.data)
|
||||||
setTimeout(() => {
|
callBack(res.data)
|
||||||
res.data.forEach((item: any) => {
|
// setTimeout(() => {
|
||||||
agora.setVideo(Number(item.account), document.getElementById(`video-${item.account}`), state.channelId)
|
// res.data.forEach((item: any) => {
|
||||||
})
|
// agora.setVideo(Number(item.account), document.getElementById(`video-${item.account}`), state.channelId)
|
||||||
}, 1000)
|
// })
|
||||||
|
// }, 1000)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -275,12 +276,35 @@ const Meeting: React.FC = () => {
|
||||||
onInvoke('joinChannel', {
|
onInvoke('joinChannel', {
|
||||||
roomNum: state.channelId
|
roomNum: state.channelId
|
||||||
})
|
})
|
||||||
getRoomUser()
|
getRoomUser((data: any) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
data.forEach((item: any) => {
|
||||||
|
agora.setVideo({
|
||||||
|
account: Number(item.account),
|
||||||
|
view: document.getElementById(`video-${item.account}`),
|
||||||
|
channelId: state.channelId
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
onInvoke('levelChannel', {
|
onInvoke('levelChannel', {
|
||||||
roomNum: state.channelId
|
roomNum: state.channelId
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
} else if (e.key === 'isRemotJoin') {
|
||||||
|
getRoomUser((data: any) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
data.forEach((item: any) => {
|
||||||
|
agora.setVideo({
|
||||||
|
account: Number(item.account),
|
||||||
|
view: document.getElementById(`video-${item.account}`),
|
||||||
|
channelId: state.channelId,
|
||||||
|
isRemotJoin: e.value
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}, 1000)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
|
|
|
||||||
|
|
@ -35,33 +35,12 @@ const agora = {
|
||||||
},
|
},
|
||||||
// 监听远端用户加入频道事件
|
// 监听远端用户加入频道事件
|
||||||
onUserJoined: (info: any, remoteUid: any, elapsed: any) => {
|
onUserJoined: (info: any, remoteUid: any, elapsed: any) => {
|
||||||
console.log(info, remoteUid, '远端加入频道');
|
storage.setItem('isRemotJoin', true)
|
||||||
// 远端用户加入频道后,设置远端视频窗口
|
|
||||||
rtcEngine.setupRemoteVideo(
|
|
||||||
{
|
|
||||||
renderMode: RenderModeType.RenderModeFit,
|
|
||||||
sourceType: VideoSourceType.VideoSourceRemote,
|
|
||||||
uid: remoteUid,
|
|
||||||
view: '',
|
|
||||||
setupMode: VideoViewSetupMode.VideoViewSetupAdd,
|
|
||||||
},
|
|
||||||
{ channelId: info.channelId },
|
|
||||||
);
|
|
||||||
|
|
||||||
},
|
},
|
||||||
// 监听用户离开频道事件
|
// 监听用户离开频道事件
|
||||||
onUserOffline: ({ channelId, localUid }: any, remoteUid: any, reason: any) => {
|
onUserOffline: (info: any, remoteUid: any, reason: any) => {
|
||||||
// 远端用户离开频道后,关闭远端视频窗口
|
// 远端用户离开频道后,关闭远端视频窗口
|
||||||
console.log({ channelId, localUid }, remoteUid, '离开频道');
|
storage.setItem('isRemotJoin', false)
|
||||||
rtcEngine.setupRemoteVideo(
|
|
||||||
{
|
|
||||||
renderMode: RenderModeType.RenderModeFit,
|
|
||||||
sourceType: VideoSourceType.VideoSourceRemote,
|
|
||||||
uid: remoteUid,
|
|
||||||
view: '',
|
|
||||||
setupMode: VideoViewSetupMode.VideoViewSetupRemove,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
// 视频发布状态改变回调
|
// 视频发布状态改变回调
|
||||||
onVideoPublishStateChanged: (source: any, channel: any, oldState: any, newState: any, elapseSinceLastState: any) => {
|
onVideoPublishStateChanged: (source: any, channel: any, oldState: any, newState: any, elapseSinceLastState: any) => {
|
||||||
|
|
@ -86,28 +65,53 @@ const agora = {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
// 渲染视频
|
// 渲染视频
|
||||||
setVideo: (localUid: number, view: any, channelId: string) => {
|
setVideo: (item: any) => {
|
||||||
console.log(view, localUid, channelId);
|
console.log(item);
|
||||||
if (option.userid === localUid) {
|
if (option.userid === item.account) {
|
||||||
rtcEngine.setupLocalVideo({
|
rtcEngine.setupLocalVideo({
|
||||||
renderMode: RenderModeType.RenderModeFit,
|
renderMode: RenderModeType.RenderModeFit,
|
||||||
// sourceType: VideoSourceType.VideoSourceScreen,
|
// sourceType: VideoSourceType.VideoSourceScreen,
|
||||||
sourceType: VideoSourceType.VideoSourceCameraPrimary,
|
sourceType: VideoSourceType.VideoSourceCameraPrimary,
|
||||||
uid: localUid,
|
uid: item.item,
|
||||||
view,
|
view: item.view,
|
||||||
setupMode: VideoViewSetupMode.VideoViewSetupAdd,
|
setupMode: VideoViewSetupMode.VideoViewSetupAdd,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
rtcEngine.setupRemoteVideo(
|
if (typeof item.isRemotJoin === 'boolean') {
|
||||||
{
|
if (item.isRemotJoin) {
|
||||||
renderMode: RenderModeType.RenderModeFit,
|
rtcEngine.setupRemoteVideo(
|
||||||
sourceType: VideoSourceType.VideoSourceRemote,
|
{
|
||||||
uid: localUid,
|
renderMode: RenderModeType.RenderModeFit,
|
||||||
view,
|
sourceType: VideoSourceType.VideoSourceRemote,
|
||||||
setupMode: VideoViewSetupMode.VideoViewSetupAdd,
|
uid: item.item,
|
||||||
},
|
view: item.view,
|
||||||
{ channelId },
|
setupMode: VideoViewSetupMode.VideoViewSetupAdd,
|
||||||
);
|
},
|
||||||
|
{ channelId: item.channelId },
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
rtcEngine.setupRemoteVideo(
|
||||||
|
{
|
||||||
|
renderMode: RenderModeType.RenderModeFit,
|
||||||
|
sourceType: VideoSourceType.VideoSourceRemote,
|
||||||
|
uid: item.item,
|
||||||
|
view: item.view,
|
||||||
|
setupMode: VideoViewSetupMode.VideoViewSetupRemove,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
rtcEngine.setupRemoteVideo(
|
||||||
|
{
|
||||||
|
renderMode: RenderModeType.RenderModeFit,
|
||||||
|
sourceType: VideoSourceType.VideoSourceRemote,
|
||||||
|
uid: item.item,
|
||||||
|
view: item.view,
|
||||||
|
setupMode: VideoViewSetupMode.VideoViewSetupAdd,
|
||||||
|
},
|
||||||
|
{ channelId: item.channelId },
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue