This commit is contained in:
yj 2024-07-26 17:33:19 +08:00
parent c4bc3dd59a
commit 18eb286fea
3 changed files with 27 additions and 19 deletions

View File

@ -56,7 +56,7 @@ export const PostOpenMicr = (data: any) => {
export const PostOpenCamera = (data: any) =>
request({
url: `/room/oper-camera?roomNum=${data.roomNum}&enableCamera=${data.enableCamera}&uid=${data.uid}`,
url: `/room/oper-camera`,
method: 'get',
data
})

View File

@ -18,6 +18,7 @@ import { VideoSourceType } from 'agora-electron-sdk';
import { GetUserList } from '@/api/Home/User';
import Avatar from '@/components/Avatar';
import SharedFilesModel from '@/components/SharedFilesModel';
import StupWizard from '@/components/StupWizard';
const fs = require('fs').promises;
dayjs.extend(durationPlugin);
const Meeting: React.FC = () => {
@ -26,6 +27,7 @@ const Meeting: React.FC = () => {
const speakerModeModalRef = useRef<any>();
const sharedFilesModelRef = useRef<any>();
const invitingPersonnelRef = useRef<any>();
const stupWizardRef = useRef<any>();
const [statusList, setStatusList] = useState({
userList: false,
userChatList: false,
@ -72,11 +74,11 @@ const Meeting: React.FC = () => {
iconActive: ImageUrl.icon27Active,
active: false,
},
// {
// title: '设置向导',
// icon: ImageUrl.icon28,
// active: false,
// },
{
title: '设置向导',
icon: ImageUrl.icon28,
active: false,
},
{
title: '结束',
icon: ImageUrl.icon29,
@ -182,6 +184,8 @@ const Meeting: React.FC = () => {
const footerListTemplate = [...footerList]
footerListTemplate[0][0].title = item.enableMicr ? '关闭声音' : '开启声音'
footerListTemplate[0][0].active = !item.enableMicr
footerListTemplate[0][1].title = item.enableCamera ? '关闭视频' : '开启视频'
footerListTemplate[0][1].active = !item.enableCamera
setFooterList(footerListTemplate)
}
agora.muteLocalAudioStream(!item.enableMicr)
@ -307,28 +311,28 @@ const Meeting: React.FC = () => {
footerListTemplate[itemIndex][rowIndex].title = '开启声音'
footerListTemplate[itemIndex][rowIndex].active = true
setFooterList(footerListTemplate)
postOpenMicr(false)
postOpenMicr(false, user.uid)
break;
case '开启声音':
footerListTemplate[itemIndex][rowIndex].title = '关闭声音'
footerListTemplate[itemIndex][rowIndex].active = false
setFooterList(footerListTemplate)
postOpenMicr(true)
postOpenMicr(true, user.uid)
break;
case '关闭视频':
footerListTemplate[itemIndex][rowIndex].title = '开启视频'
footerListTemplate[itemIndex][rowIndex].active = true
setFooterList(footerListTemplate)
postOpenCamera(false)
postOpenCamera(false, user.uid)
break;
case '开启视频':
footerListTemplate[itemIndex][rowIndex].title = '关闭视频'
footerListTemplate[itemIndex][rowIndex].active = false
setFooterList(footerListTemplate)
postOpenCamera(true)
postOpenCamera(true, user.uid)
break;
case '设置向导':
// stupWizardRef.current.changeModal()
break;
case '邀请人员':
invitingPersonnelRef.current.changeInvitingPersonnelModal()
@ -477,19 +481,19 @@ const Meeting: React.FC = () => {
}
}
// 开关麦克风
const postOpenMicr = async (enableMicr: boolean, isAll?: boolean): Promise<void> => {
const postOpenMicr = async (enableMicr: boolean, uid: string, isAll?: boolean): Promise<void> => {
await PostOpenMicr({
roomNum: state.channelId,
uid: user.uid,
uid,
enableMicr,
isAll,
})
}
// 开关视频
const postOpenCamera = async (enableCamera: boolean): Promise<void> => {
const postOpenCamera = async (enableCamera: boolean, uid: string): Promise<void> => {
await PostOpenCamera({
roomNum: state.channelId,
uid: user.uid,
uid,
enableCamera
})
}
@ -646,10 +650,10 @@ const Meeting: React.FC = () => {
</div>
<div>
<img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => {
postOpenMicr(!item.enableMicr, item.id)
}} />
<img src={item.enableCamera ? ImageUrl.icon23 : ImageUrl.icon23Active} alt="" onClick={() => {
postOpenCamera(!item.enableCamera, item.id)
}} />
</div>
{item.account !== user.account && user.roleId === '1' ? <div className='drag'>
@ -709,7 +713,7 @@ const Meeting: React.FC = () => {
</div>
<div className={`${styles.meetingUserListFooter} drag`}>
<div onClick={() => invitingPersonnelRef.current.changeInvitingPersonnelModal()}></div>
<div onClick={() => postOpenMicr(false, true)}></div>
<div onClick={() => postOpenMicr(false, user.id, true)}></div>
</div>
</div>
:
@ -825,6 +829,7 @@ const Meeting: React.FC = () => {
<SharedFilesModel ref={sharedFilesModelRef} />
<SpeakerModeModal ref={speakerModeModalRef} />
<InvitingPersonnelModal ref={invitingPersonnelRef} />
<StupWizard ref={stupWizardRef} />
</>
)
}

View File

@ -294,7 +294,10 @@ const agora = {
rtcEngine.enableVideo();
rtcEngine.startPreview();
await GetRoomRtcToken(`${+new Date()}`).then(async (res) => {
await rtcEngine.joinChannel(res.data, `${+new Date()}`, uid, {
await rtcEngine.joinChannelEx(res.data, {
channelId: `${+new Date()}`,
localUid: uid,
}, {
channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting,
clientRoleType: ClientRoleType.ClientRoleBroadcaster,
publishMicrophoneTrack: true,