This commit is contained in:
yj 2024-08-28 11:12:57 +08:00
parent 31eb6a4ba7
commit 4db08762d9
1 changed files with 76 additions and 72 deletions

View File

@ -185,78 +185,7 @@ const Meeting: React.FC = () => {
}
}, 1000)
setMeetingMode('StandardMode');
agora.init(true)
agora.registerEventHandler({
onJoinChannelSuccess: async (info: any, _elapsed: any) => {
if (info.channelId === state.channelId) {
if (String(info.localUid).length !== 9) {
await getJoin(state.enableMicr, state.enableCamera)
setTimeout(async () => {
await agora.setupLocalVideo({
uid: Number(info.localUid),
view: document.getElementById(`video-${info.localUid}`),
channelId: info.channelId,
sourceType: VideoSourceType.VideoSourceCameraPrimary,
})
getShowUser();
}, 1000);
}
}
},
onUserJoined: async (info: any, remoteUid: any, _elapsed: any) => {
if (info.channelId === state.channelId) {
if (String(remoteUid).length === 9) {
setIsShare(remoteUid)
} else {
setTimeout(async () => {
await agora.setupRemoteVideoJoin({
uid: Number(remoteUid),
view: document.getElementById(`video-${remoteUid}`),
channelId: info.channelId,
})
}, 1000);
}
}
},
onUserOffline: async (info: any, remoteUid: any, _reason: any) => {
if (info.channelId === state.channelId) {
if (String(remoteUid).length === 9) {
setIsShare(null)
renderVideo()
}
await agora.setupRemoteVideo({
uid: Number(remoteUid),
view: null,
channelId: info.channelId,
});
setCurrentVideoId((res: any) => {
if (Number(res) === remoteUid) {
getShowUser();
}
return res
})
}
},
onAudioVolumeIndication: async (speakers: any) => {
speakers.forEach((item: any) => {
let dom = document.getElementById(`micr-${item.uid ? item.uid : userInfo.uid}`);
if (dom) {
const percentage = (item.volume / 255) * 100
dom.style.width = `${percentage}%`
}
});
}
})
if (state.enableCamera) {
agora.startCameraCapture()
}
agora.setJoinChannel({
channelId: state.channelId,
uid: userInfo.uid,
screenShareId: userInfo.screenShareId,
token: state.token,
tokenA: state.tokenA,
})
agoraInit()
storage.setItem('noViewChatList', 0)
window.addEventListener('customStorageChange', handleCustomStorageChange);
window.addEventListener('online', handleNetworkChange);
@ -542,6 +471,81 @@ const Meeting: React.FC = () => {
return () => clearTimeout(timer);
}, [isClicked]);
// 声网初始化
const agoraInit = async () => {
await agora.init(true)
agora.registerEventHandler({
onJoinChannelSuccess: async (info: any, _elapsed: any) => {
if (info.channelId === state.channelId) {
if (String(info.localUid).length !== 9) {
await getJoin(state.enableMicr, state.enableCamera)
setTimeout(async () => {
await agora.setupLocalVideo({
uid: Number(info.localUid),
view: document.getElementById(`video-${info.localUid}`),
channelId: info.channelId,
sourceType: VideoSourceType.VideoSourceCameraPrimary,
})
getShowUser();
}, 1000);
}
}
},
onUserJoined: async (info: any, remoteUid: any, _elapsed: any) => {
if (info.channelId === state.channelId) {
if (String(remoteUid).length === 9) {
setIsShare(remoteUid)
} else {
setTimeout(async () => {
await agora.setupRemoteVideoJoin({
uid: Number(remoteUid),
view: document.getElementById(`video-${remoteUid}`),
channelId: info.channelId,
})
}, 1000);
}
}
},
onUserOffline: async (info: any, remoteUid: any, _reason: any) => {
if (info.channelId === state.channelId) {
if (String(remoteUid).length === 9) {
setIsShare(null)
renderVideo()
}
await agora.setupRemoteVideo({
uid: Number(remoteUid),
view: null,
channelId: info.channelId,
});
setCurrentVideoId((res: any) => {
if (Number(res) === remoteUid) {
getShowUser();
}
return res
})
}
},
onAudioVolumeIndication: async (speakers: any) => {
speakers.forEach((item: any) => {
let dom = document.getElementById(`micr-${item.uid ? item.uid : userInfo.uid}`);
if (dom) {
const percentage = (item.volume / 255) * 100
dom.style.width = `${percentage}%`
}
});
}
})
if (state.enableCamera) {
agora.startCameraCapture()
}
agora.setJoinChannel({
channelId: state.channelId,
uid: userInfo.uid,
screenShareId: userInfo.screenShareId,
token: state.token,
tokenA: state.tokenA,
})
}
// 状态更新
const changeAgoraDevice = () => {
setRoomUserList((res: any) => {