diff --git a/main.js b/main.js index 4f3c602..0dfd420 100644 --- a/main.js +++ b/main.js @@ -191,6 +191,7 @@ app.on('ready', () => { connection.off('JoinChannelCallback'); connection.off('ExitSharedScreen'); connection.off('SetSpeaker'); + connection.off('ReceivedOperation'); } }); ipcMain.handle('onStop', (event) => { @@ -236,6 +237,10 @@ app.on('ready', () => { // 发言人设置成功 await connection.invoke(str, data) break; + case 'sendOper2User': + // 扩展参数 + await connection.invoke(str, data.uid, data.contentString) + break; } }); ipcMain.handle('onOtherSignalr', (event) => { @@ -411,6 +416,13 @@ app.on('ready', () => { RoomManagerInputDTO }) }); + // 扩展参数 + connection.on("ReceivedOperation", (contentString) => { + mainWindow.webContents.send('onSignalr', { + key: 'ReceivedOperation', + contentString + }) + }); } }); // 放大缩小退出窗口 diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 50385e7..e7c43e7 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -966,10 +966,31 @@ const Meeting: React.FC = () => { return res }) break; - // 共享 + // 设置发言人 case 'SetSpeaker': window.electron.onInvoke('SetSpeakerCallback', item.RoomManagerInputDTO) break; + // 扩展参数 + case 'ReceivedOperation': + try { + const temp = JSON.parse(item.contentString) + if (temp.type === 'audio') { + await PostOpenMicr({ + roomNum: temp.roomNum, + uid: temp.uid, + enableMicr: temp.enableMicr + }) + } else { + await PostOpenCamera({ + roomNum: temp.roomNum, + uid: temp.uid, + enableCamera: temp.enableCamera + }) + } + } catch (error) { + + } + break; } }) return () => { @@ -2219,11 +2240,20 @@ const Meeting: React.FC = () => { enableMicr }) } else { - await PostOpenMicr({ - roomNum: state.channelId, + await window.electron.onInvoke('sendOper2User', { uid, - enableMicr + contentString: JSON.stringify({ + roomNum: state.channelId, + uid, + enableMicr, + type: 'audio' + }) }) + // await PostOpenMicr({ + // roomNum: state.channelId, + // uid, + // enableMicr + // }) } if (isMessage) { // message.success('操作成功') @@ -2264,11 +2294,20 @@ const Meeting: React.FC = () => { } else { await agora.stopCameraCapture(); } - await PostOpenCamera({ - roomNum: state.channelId, + await window.electron.onInvoke('sendOper2User', { uid, - enableCamera + contentString: JSON.stringify({ + roomNum: state.channelId, + uid, + enableCamera, + type: 'video' + }) }) + // await PostOpenCamera({ + // roomNum: state.channelId, + // uid, + // enableCamera + // }) if (isMessage) { // message.success('操作成功') }