Commit 0c1868b2 authored by liujiaxin's avatar liujiaxin

输入修改,老师全部静音的时候学生无权开启

parent e9179cd5
...@@ -17,7 +17,7 @@ const useStyles = makeStyles ((theme: Theme) => ({ ...@@ -17,7 +17,7 @@ const useStyles = makeStyles ((theme: Theme) => ({
} }
})); }));
const ALPHABETICAL = /^[a-zA-Z0-9]*/ const ALPHABETICAL = /^[a-zA-Z0-9_]*/
export default function (props: any) { export default function (props: any) {
const classes = useStyles(); const classes = useStyles();
...@@ -35,4 +35,4 @@ export default function (props: any) { ...@@ -35,4 +35,4 @@ export default function (props: any) {
{props.requiredText ? <Typography className={classes.required}>{props.requiredText}</Typography> : null} {props.requiredText ? <Typography className={classes.required}>{props.requiredText}</Typography> : null}
</> </>
); );
} }
\ No newline at end of file
...@@ -70,8 +70,8 @@ export function Nav ({ ...@@ -70,8 +70,8 @@ export function Nav ({
<span className="time">{moment.utc(time).format('HH:mm:ss')}</span> <span className="time">{moment.utc(time).format('HH:mm:ss')}</span>
</div> </div>
<span className="menu-split" /> <span className="menu-split" />
<RoomToolsBar onClick={handleClick} />
{ roomStore.state.me.role == 'teacher' ? <RoomToolsBar onClick={handleClick} /> : null}
{/*<div className={platform === 'web' ? "btn-group" : 'electron-btn-group' }> {/*<div className={platform === 'web' ? "btn-group" : 'electron-btn-group' }>
{platform === 'web' ? <Icon className="icon-setting" onClick={(evt: any) => { {platform === 'web' ? <Icon className="icon-setting" onClick={(evt: any) => {
handleClick("setting"); handleClick("setting");
......
...@@ -59,15 +59,20 @@ export default function RoomToolsBar (props: any) { ...@@ -59,15 +59,20 @@ export default function RoomToolsBar (props: any) {
<> <>
<div className={'room-tool-box'}> <div className={'room-tool-box'}>
{roomStore.state.me.role == 'teacher' ?
<>
{muteAudio
? <div className="tool-btn" onClick={audioOn}><VoiceOverOffIcon/></div>
: <div onClick={audioOff} className="tool-btn"><RecordVoiceOverIcon/></div>
}
{currentTool == TOOL_TYPE.WHITEBOARD
? <div className="tool-btn" onClick={changeTool}><ImportContacts/></div>
: <div onClick={changeTool} className="tool-btn"><Category/></div>
}
</>: null }
{muteAudio
? <div className="tool-btn" onClick={audioOn}><VoiceOverOffIcon/></div>
: <div onClick={audioOff} className="tool-btn"><RecordVoiceOverIcon/></div>
}
{currentTool == TOOL_TYPE.WHITEBOARD
? <div className="tool-btn" onClick={changeTool}><ImportContacts/></div>
: <div onClick={changeTool} className="tool-btn"><Category/></div>
}
<div className="tool-btn" onClick={(evt: any) => { <div className="tool-btn" onClick={(evt: any) => {
props.onClick("setting"); props.onClick("setting");
}}><SettingsApplicationsIcon/></div> }}><SettingsApplicationsIcon/></div>
......
...@@ -80,7 +80,7 @@ export const RootProvider: React.FC<any> = ({children}) => { ...@@ -80,7 +80,7 @@ export const RootProvider: React.FC<any> = ({children}) => {
if (!roomStore.state.rtm.joined) return; if (!roomStore.state.rtm.joined) return;
const rtmClient = roomStore.rtmClient; const rtmClient = roomStore.rtmClient;
rtmClient.on('ConnectionStateChanged', ({ newState, reason }: { newState: string, reason: string }) => { rtmClient.on('ConnectionStateChanged', ({ newState, reason }: { newState: string, reason: string }) => {
console.log(`newState: ${newState} reason: ${reason}`); console.log(`[ConnectionStateChanged] newState: ${newState} reason: ${reason}`);
if (reason === 'LOGIN_FAILURE') { if (reason === 'LOGIN_FAILURE') {
globalStore.showToast({ globalStore.showToast({
type: 'rtmClient', type: 'rtmClient',
......
...@@ -149,6 +149,7 @@ export default function useStream () { ...@@ -149,6 +149,7 @@ export default function useStream () {
// return studentsOrder.indexOf(+a) - studentsOrder.indexOf(+b); // return studentsOrder.indexOf(+a) - studentsOrder.indexOf(+b);
// }); // });
const sids: any = []; const sids: any = [];
let orderIdx = 0;
for (const ouid of studentsOrder) { for (const ouid of studentsOrder) {
if (ouid == 0) { if (ouid == 0) {
sids.push(0) sids.push(0)
...@@ -159,15 +160,19 @@ export default function useStream () { ...@@ -159,15 +160,19 @@ export default function useStream () {
sids.push(uid); sids.push(uid);
} else { } else {
// find in channel // find in channel
const usr = userAttrs.get(`${uid}`) const usr = userAttrs.get(`${ouid}`)
console.log('channel has ', ouid, usr)
if (usr) { if (usr) {
sids.push(+usr.uid); sids.push(-1/*+usr.uid*/);
} else { } else {
sids.push(-1); // sids.push(-1);
sids[orderIdx] = 0;
studentsOrder[orderIdx] = 0
} }
} }
} }
orderIdx++
} }
console.log(222222, userAttrs.toArray()); console.log(222222, userAttrs.toArray());
console.log(333333, sids); console.log(333333, sids);
...@@ -432,6 +437,9 @@ export default function useStream () { ...@@ -432,6 +437,9 @@ export default function useStream () {
if (audio) { if (audio) {
await roomStore.mute(targetUid, 'audio'); await roomStore.mute(targetUid, 'audio');
} else { } else {
if (me.role == 'student' && roomStore.state.course.muteAudio) {
return
}
await roomStore.unmute(targetUid, 'audio'); await roomStore.unmute(targetUid, 'audio');
} }
return; return;
......
...@@ -82,7 +82,7 @@ function HomePage() { ...@@ -82,7 +82,7 @@ function HomePage() {
/////////////////////////////// ///////////////////////////////
if (window.location.origin.includes('://127.0.0.1') || window.location.origin.includes('://localhost')) {
session.roomName = "test_01__123";// userInfo["class_id"]; session.roomName = "test_01__123";// userInfo["class_id"];
// session.yourName = userInfo["nick_name"]; // session.yourName = userInfo["nick_name"];
session.role = `${session.yourName}`==="1"?"teacher":"student"; session.role = `${session.yourName}`==="1"?"teacher":"student";
...@@ -123,15 +123,12 @@ function HomePage() { ...@@ -123,15 +123,12 @@ function HomePage() {
}) })
} }
console.warn(err); console.warn(err);
}) }).finally(() => {
.finally(() => {
ref.current = false; ref.current = false;
globalStore.stopLoading(); globalStore.stopLoading();
}) })
} else {
///////////////////////////////
/*
endPoint.login({username: session.yourName, password: session.yourPass}).then((userInfo: any) => { endPoint.login({username: session.yourName, password: session.yourPass}).then((userInfo: any) => {
console.log(userInfo); console.log(userInfo);
session.roomName = userInfo["class_id"];// userInfo["class_id"]; session.roomName = userInfo["class_id"];// userInfo["class_id"];
...@@ -142,7 +139,7 @@ function HomePage() { ...@@ -142,7 +139,7 @@ function HomePage() {
if (!roomTypes[session.roomType]) return; if (!roomTypes[session.roomType]) return;
const path = roomTypes[session.roomType].path const path = roomTypes[session.roomType].path
const payload = { const payload = {
uid: userInfo["classRole"]==="tea"?"100":`${session.yourName.substr(-2)}`, // `${userInfo["id"]}`, // genUid(), uid: `${userInfo["id"]}`, // userInfo["classRole"]==="tea"?"100":`${session.yourName.substr(-2)}`, // `${userInfo["id"]}`, // genUid(),
rid: `${session.roomName}`, // `${session.roomType}${MD5(session.roomName)}`, rid: `${session.roomName}`, // `${session.roomType}${MD5(session.roomName)}`,
role: session.role, role: session.role,
roomName: session.roomName, roomName: session.roomName,
...@@ -186,7 +183,9 @@ function HomePage() { ...@@ -186,7 +183,9 @@ function HomePage() {
message: err message: err
}) })
}); });
*/
}
} }
......
...@@ -547,7 +547,7 @@ export class RoomStore { ...@@ -547,7 +547,7 @@ export class RoomStore {
} }
addRemoteStream(stream: AgoraStream) { addRemoteStream(stream: AgoraStream) {
console.log('remoteStreams added',5 , stream.streamID) console.log('remoteStreams added',5 , stream.streamID, this.state.users)
this.state = { this.state = {
...this.state, ...this.state,
rtc: { rtc: {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment