角色权限优化
This commit is contained in:
parent
092d78bbb9
commit
d77782916c
|
|
@ -8,6 +8,7 @@ import { PostRefresh } from '@/api/Login';
|
||||||
import Avatar from '@/components/Avatar';
|
import Avatar from '@/components/Avatar';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { agora } from '@/utils/package/agora';
|
import { agora } from '@/utils/package/agora';
|
||||||
|
import { role } from '@/config/role';
|
||||||
let time = null as any;
|
let time = null as any;
|
||||||
const JoinSetting = forwardRef((_props: any, ref: any) => {
|
const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
useImperativeHandle(ref, () => ({
|
useImperativeHandle(ref, () => ({
|
||||||
|
|
@ -127,7 +128,7 @@ const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
{
|
{
|
||||||
joinRoomSettingForm.map((item, index) => {
|
joinRoomSettingForm.map((item, index) => {
|
||||||
return <div key={index} onClick={async () => {
|
return <div key={index} onClick={async () => {
|
||||||
if (user.roleId === '1') {
|
if (role.ID.includes(user.roleId)) {
|
||||||
let msg = '';
|
let msg = '';
|
||||||
if (index === 0) {
|
if (index === 0) {
|
||||||
await agora.getAudioMediaList().then(res => {
|
await agora.getAudioMediaList().then(res => {
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import axios from 'axios';
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import { storage } from '@/utils';
|
import { storage } from '@/utils';
|
||||||
import StupWizard from '../StupWizard';
|
import StupWizard from '../StupWizard';
|
||||||
|
import { role } from '@/config/role';
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
const { exec } = require('child_process');
|
const { exec } = require('child_process');
|
||||||
const { Column } = Table
|
const { Column } = Table
|
||||||
|
|
@ -128,7 +129,7 @@ const SharedFilesModel = forwardRef((props: any, ref: any) => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}} />
|
}} />
|
||||||
{roomUserItem && roomUserItem.roleId === '1' || roomUserItem.isRoomManager ? <ProfileOutlined title={showRowSelection ? '取消框选' : '显示框选'} onClick={() => {
|
{roomUserItem && role.ID.includes(roomUserItem.roleId) || roomUserItem.isRoomManager ? <ProfileOutlined title={showRowSelection ? '取消框选' : '显示框选'} onClick={() => {
|
||||||
setShowRowSelection(!showRowSelection)
|
setShowRowSelection(!showRowSelection)
|
||||||
}} style={{ color: showRowSelection ? '#5575F2' : 'white' }} /> : null}
|
}} style={{ color: showRowSelection ? '#5575F2' : 'white' }} /> : null}
|
||||||
{showRowSelection ? <DeleteOutlined title='删除' onClick={() => {
|
{showRowSelection ? <DeleteOutlined title='删除' onClick={() => {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,3 @@
|
||||||
|
export const role = {
|
||||||
|
ID: ['1', '3']
|
||||||
|
}
|
||||||
|
|
@ -9,6 +9,7 @@ import JoinSetting from '@/components/JoinSetting';
|
||||||
import { storage } from '@/utils';
|
import { storage } from '@/utils';
|
||||||
import { PostRefresh } from '@/api/Login';
|
import { PostRefresh } from '@/api/Login';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
|
import { role } from '@/config/role';
|
||||||
const Index: React.FC = () => {
|
const Index: React.FC = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [list, setList] = useState({
|
const [list, setList] = useState({
|
||||||
|
|
@ -153,7 +154,7 @@ const Index: React.FC = () => {
|
||||||
<Button type="primary"
|
<Button type="primary"
|
||||||
iconPosition={'end'}
|
iconPosition={'end'}
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
if (userInfo.roleId === '1') {
|
if (role.ID.includes(userInfo.roleId)) {
|
||||||
joinSettingRef.current.changeModal(item.roomNum)
|
joinSettingRef.current.changeModal(item.roomNum)
|
||||||
} else {
|
} else {
|
||||||
postRefresh(() => {
|
postRefresh(() => {
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ import SharedFilesModel from '@/components/SharedFilesModel';
|
||||||
import StupWizard from '@/components/StupWizard';
|
import StupWizard from '@/components/StupWizard';
|
||||||
import EquipmentManagement from '@/components/EquipmentManagement';
|
import EquipmentManagement from '@/components/EquipmentManagement';
|
||||||
import UserVideo from '@/components/UserVideo';
|
import UserVideo from '@/components/UserVideo';
|
||||||
|
import { role } from '@/config/role';
|
||||||
const { confirm } = Modal;
|
const { confirm } = Modal;
|
||||||
const { exec } = require('child_process');
|
const { exec } = require('child_process');
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
|
|
@ -460,7 +461,7 @@ const Meeting: React.FC = () => {
|
||||||
break;
|
break;
|
||||||
// 管理员查看随机用户
|
// 管理员查看随机用户
|
||||||
case 'Watch':
|
case 'Watch':
|
||||||
if (userInfo.roleId !== '1') {
|
if (!role.ID.includes(userInfo.roleId)) {
|
||||||
let userId = item.watchUids.find((uid: any) => uid === userInfo.uid)
|
let userId = item.watchUids.find((uid: any) => uid === userInfo.uid)
|
||||||
if (userId) {
|
if (userId) {
|
||||||
await agora.allJoinChannelEx()
|
await agora.allJoinChannelEx()
|
||||||
|
|
@ -689,7 +690,7 @@ const Meeting: React.FC = () => {
|
||||||
await agora.muteLocalAudioStream(true)
|
await agora.muteLocalAudioStream(true)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (userInfo.roleId !== '1') {
|
if (!role.ID.includes(userInfo.roleId)) {
|
||||||
if (item.isRoomManager) {
|
if (item.isRoomManager) {
|
||||||
footerListTemplate[0][2].title = '结束发言'
|
footerListTemplate[0][2].title = '结束发言'
|
||||||
footerListTemplate[0][2].active = true
|
footerListTemplate[0][2].active = true
|
||||||
|
|
@ -710,7 +711,7 @@ const Meeting: React.FC = () => {
|
||||||
item.isShow = true;
|
item.isShow = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
setIsAdmin(res.filter((item: any) => (item.roleId === '1' || item.isRoomManager) && item.isRoom).length)
|
setIsAdmin(res.filter((item: any) => (role.ID.includes(item.roleId) || item.isRoomManager) && item.isRoom).length)
|
||||||
return res
|
return res
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -747,7 +748,7 @@ const Meeting: React.FC = () => {
|
||||||
for (const key in item.user) {
|
for (const key in item.user) {
|
||||||
userItem[key] = item.user[key];
|
userItem[key] = item.user[key];
|
||||||
}
|
}
|
||||||
userItem.isAdmin = item.user.roleId === '1' || item.user.isRoomManager;
|
userItem.isAdmin = role.ID.includes(item.user.roleId) || item.user.isRoomManager;
|
||||||
refreshVideoView(userItem)
|
refreshVideoView(userItem)
|
||||||
}
|
}
|
||||||
if (key === 'ManagerRefresh') {
|
if (key === 'ManagerRefresh') {
|
||||||
|
|
@ -764,12 +765,12 @@ const Meeting: React.FC = () => {
|
||||||
userItem[key] = item.user[key];
|
userItem[key] = item.user[key];
|
||||||
}
|
}
|
||||||
userItem.isRoom = true;
|
userItem.isRoom = true;
|
||||||
userItem.isAdmin = item.user.roleId === '1' || item.user.isRoomManager;
|
userItem.isAdmin = role.ID.includes(item.user.roleId) || item.user.isRoomManager;
|
||||||
refreshVideoView(userItem)
|
refreshVideoView(userItem)
|
||||||
return [...res]
|
return [...res]
|
||||||
} else {
|
} else {
|
||||||
item.user.isRoom = true;
|
item.user.isRoom = true;
|
||||||
item.user.isAdmin = item.user.roleId === '1' || item.user.isRoomManager;
|
item.user.isAdmin = role.ID.includes(item.user.roleId) || item.user.isRoomManager;
|
||||||
refreshVideoView(item.user)
|
refreshVideoView(item.user)
|
||||||
return [...res, item.user]
|
return [...res, item.user]
|
||||||
}
|
}
|
||||||
|
|
@ -1152,7 +1153,7 @@ const Meeting: React.FC = () => {
|
||||||
res.data.forEach((item: any) => {
|
res.data.forEach((item: any) => {
|
||||||
item.isShow = true;
|
item.isShow = true;
|
||||||
item.isRoom = true;
|
item.isRoom = true;
|
||||||
item.isAdmin = item.roleId === '1' || item.isRoomManager
|
item.isAdmin = role.ID.includes(item.roleId) || item.isRoomManager
|
||||||
})
|
})
|
||||||
setRoomUserList(res.data)
|
setRoomUserList(res.data)
|
||||||
getUserRoomInfo().then(async (res) => {
|
getUserRoomInfo().then(async (res) => {
|
||||||
|
|
@ -1310,7 +1311,7 @@ const Meeting: React.FC = () => {
|
||||||
return new Promise((resolve, _reject) => {
|
return new Promise((resolve, _reject) => {
|
||||||
setRoomUserList((res: any) => {
|
setRoomUserList((res: any) => {
|
||||||
let userItem = res.find((item: any) => item.uid === userInfo.uid)
|
let userItem = res.find((item: any) => item.uid === userInfo.uid)
|
||||||
if (userItem && (userItem.roleId === '1' || userItem.isRoomManager)) {
|
if (userItem && (role.ID.includes(userItem.roleId) || userItem.isRoomManager)) {
|
||||||
resolve(userItem)
|
resolve(userItem)
|
||||||
} else {
|
} else {
|
||||||
resolve('')
|
resolve('')
|
||||||
|
|
@ -1517,7 +1518,7 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<div className={`${styles.meetingContentSwiperCardVdeio} ${(item.uid === currentVideoId) && !isVideoFullScreen ? styles.active : ''} ${(item.roleId === '1' || item.isRoomManager) && !isVideoFullScreen ? styles.boxShadow : ''}`} id={`video-${item.uid}`}>
|
<div className={`${styles.meetingContentSwiperCardVdeio} ${(item.uid === currentVideoId) && !isVideoFullScreen ? styles.active : ''} ${(role.ID.includes(item.roleId) || item.isRoomManager) && !isVideoFullScreen ? styles.boxShadow : ''}`} id={`video-${item.uid}`}>
|
||||||
<div className={styles.meetingContentSwiperCardVdeioLoading}>
|
<div className={styles.meetingContentSwiperCardVdeioLoading}>
|
||||||
<Avatar name={item.userName} />
|
<Avatar name={item.userName} />
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -1527,9 +1528,9 @@ const Meeting: React.FC = () => {
|
||||||
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
||||||
屏幕分享中
|
屏幕分享中
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{user.roleId === '1' ? <Popover placement="bottom" title={''} content={
|
{role.ID.includes(user.roleId) ? <Popover placement="bottom" title={''} content={
|
||||||
<div className={styles.meetingContentSwiperCardPopover}>
|
<div className={styles.meetingContentSwiperCardPopover}>
|
||||||
{item.isRoomManager || item.roleId === '1' ? <Button
|
{item.isRoomManager || role.ID.includes(item.roleId) ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -1538,7 +1539,7 @@ const Meeting: React.FC = () => {
|
||||||
setAllUserLook(item)
|
setAllUserLook(item)
|
||||||
}}
|
}}
|
||||||
>全员看Ta</Button> : null}
|
>全员看Ta</Button> : null}
|
||||||
{item.uid !== user.uid && item.roleId !== '1' ? <Button
|
{item.uid !== user.uid && !role.ID.includes(item.roleId) ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -1714,28 +1715,28 @@ const Meeting: React.FC = () => {
|
||||||
<div><Avatar name={item.userName} /></div>
|
<div><Avatar name={item.userName} /></div>
|
||||||
<span>
|
<span>
|
||||||
{item.userName}{item.uid === user.uid ? '(我)' : ''}
|
{item.userName}{item.uid === user.uid ? '(我)' : ''}
|
||||||
{item.roleId === '1' || item.isRoomManager ?
|
{role.ID.includes(item.roleId) || item.isRoomManager ?
|
||||||
<span style={{ color: '#02B188', marginLeft: '4px' }}>
|
<span style={{ color: '#02B188', marginLeft: '4px' }}>
|
||||||
{item.roleId === '1' ? '管理员' : '发言人'}
|
{role.ID.includes(item.roleId) ? '管理员' : '发言人'}
|
||||||
</span>
|
</span>
|
||||||
: null}
|
: null}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{item.roleId === '1' || item.isRoomManager ? <div>
|
{role.ID.includes(item.roleId) || item.isRoomManager ? <div>
|
||||||
<img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => {
|
<img src={item.enableMicr ? ImageUrl.icon22 : ImageUrl.icon22Active} alt="" onClick={() => {
|
||||||
postOpenMicr(!item.enableMicr, item.uid)
|
postOpenMicr(!item.enableMicr, item.uid)
|
||||||
}} title={item.enableMicr ? '静音' : '解除声音'} />
|
}} title={item.enableMicr ? '静音' : '解除声音'} />
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{item.roleId === '1' || item.isRoomManager ? <div>
|
{role.ID.includes(item.roleId) || item.isRoomManager ? <div>
|
||||||
<img src={item.enableCamera ? ImageUrl.icon23 : ImageUrl.icon23Active} alt="" onClick={() => {
|
<img src={item.enableCamera ? ImageUrl.icon23 : ImageUrl.icon23Active} alt="" onClick={() => {
|
||||||
postOpenCamera(!item.enableCamera, item.uid)
|
postOpenCamera(!item.enableCamera, item.uid)
|
||||||
}} title={item.enableCamera ? '关闭视频' : '开启视频'} />
|
}} title={item.enableCamera ? '关闭视频' : '开启视频'} />
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{item.uid !== user.uid && user.roleId === '1' ? <div>
|
{item.uid !== user.uid && role.ID.includes(user.roleId) ? <div>
|
||||||
<Popover placement="left" title={''} content={
|
<Popover placement="left" title={''} content={
|
||||||
<div>
|
<div>
|
||||||
{item.roleId !== '1' ? <Button
|
{!role.ID.includes(item.roleId) ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
style={{ marginBottom: '10px', width: '100%' }}
|
style={{ marginBottom: '10px', width: '100%' }}
|
||||||
|
|
@ -1817,7 +1818,7 @@ const Meeting: React.FC = () => {
|
||||||
<div
|
<div
|
||||||
key={index}
|
key={index}
|
||||||
className={`${item.uid !== user.uid ? styles.meetingUserChatContentLeft : styles.meetingUserChatContentRight}`}>
|
className={`${item.uid !== user.uid ? styles.meetingUserChatContentLeft : styles.meetingUserChatContentRight}`}>
|
||||||
{user.roleId === '1' ? <Popover
|
{role.ID.includes(user.roleId) ? <Popover
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
title={''}
|
title={''}
|
||||||
onOpenChange={(e: boolean) => {
|
onOpenChange={(e: boolean) => {
|
||||||
|
|
@ -1833,7 +1834,7 @@ const Meeting: React.FC = () => {
|
||||||
}}
|
}}
|
||||||
content={
|
content={
|
||||||
roomUserItem ? <div className={styles.meetingContentSwiperCardPopover}>
|
roomUserItem ? <div className={styles.meetingContentSwiperCardPopover}>
|
||||||
{roomUserItem.isRoomManager || roomUserItem.roleId === '1' ? <Button
|
{roomUserItem.isRoomManager || role.ID.includes(roomUserItem.roleId) ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -1842,7 +1843,7 @@ const Meeting: React.FC = () => {
|
||||||
setAllUserLook(roomUserItem)
|
setAllUserLook(roomUserItem)
|
||||||
}}
|
}}
|
||||||
>全员看Ta</Button> : null}
|
>全员看Ta</Button> : null}
|
||||||
{roomUserItem.uid !== user.uid && roomUserItem.roleId !== '1' ? <Button
|
{roomUserItem.uid !== user.uid && !role.ID.includes(roomUserItem.roleId) ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -1986,7 +1987,7 @@ const Meeting: React.FC = () => {
|
||||||
return <Popover key={rowIndex}
|
return <Popover key={rowIndex}
|
||||||
content={
|
content={
|
||||||
<div className='meetingContentFooterPopover'>
|
<div className='meetingContentFooterPopover'>
|
||||||
{user.roleId === '1' ?
|
{role.ID.includes(user.roleId) ?
|
||||||
<Popconfirm
|
<Popconfirm
|
||||||
title="提示"
|
title="提示"
|
||||||
description={`结束会议后,所有人将退出,是否结束?`}
|
description={`结束会议后,所有人将退出,是否结束?`}
|
||||||
|
|
@ -2024,7 +2025,7 @@ const Meeting: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
</Popover>
|
</Popover>
|
||||||
case '申请发言':
|
case '申请发言':
|
||||||
if (user.roleId !== '1') {
|
if (!role.ID.includes(user.roleId)) {
|
||||||
return <div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
|
return <div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
|
||||||
<img src={row.active ? row.iconActive : row.icon} alt="" />
|
<img src={row.active ? row.iconActive : row.icon} alt="" />
|
||||||
<span>{row.title}</span>
|
<span>{row.title}</span>
|
||||||
|
|
@ -2032,7 +2033,7 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
case '结束发言':
|
case '结束发言':
|
||||||
if (user.roleId !== '1') {
|
if (!role.ID.includes(user.roleId)) {
|
||||||
return <Popconfirm
|
return <Popconfirm
|
||||||
key={rowIndex}
|
key={rowIndex}
|
||||||
title="提示"
|
title="提示"
|
||||||
|
|
@ -2055,7 +2056,7 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
case '会议监控':
|
case '会议监控':
|
||||||
if (user.roleId === '1') {
|
if (role.ID.includes(user.roleId)) {
|
||||||
return <div
|
return <div
|
||||||
className='drag'
|
className='drag'
|
||||||
onClick={() => changeStatusList(row, itemIndex, rowIndex)}
|
onClick={() => changeStatusList(row, itemIndex, rowIndex)}
|
||||||
|
|
@ -2208,8 +2209,8 @@ const meetingContentUser = (item: any, bool?: boolean) => {
|
||||||
<>
|
<>
|
||||||
<div className={styles.meetingContentUser}>
|
<div className={styles.meetingContentUser}>
|
||||||
<div className={styles.meetingContentUserName}>
|
<div className={styles.meetingContentUserName}>
|
||||||
{item.roleId === '1' || item.isRoomManager ?
|
{role.ID.includes(item.roleId) || item.isRoomManager ?
|
||||||
<div style={{ background: item.roleId === '1' ? '#FDC229' : '#3F51B5' }}>
|
<div style={{ background: role.ID.includes(item.roleId) ? '#FDC229' : '#3F51B5' }}>
|
||||||
<img src={ImageUrl.icon32} alt="" />
|
<img src={ImageUrl.icon32} alt="" />
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{
|
{
|
||||||
|
|
@ -2220,9 +2221,9 @@ const meetingContentUser = (item: any, bool?: boolean) => {
|
||||||
</div> : ''}
|
</div> : ''}
|
||||||
</label>
|
</label>
|
||||||
}
|
}
|
||||||
<span style={{ maxWidth: bool ? '' : '8vw' }} title={`${item.userName}${item.roleId === '1' || item.isRoomManager ? item.roleId === '1' ? '(管理员)' : '(发言人)' : ''}`}>
|
<span style={{ maxWidth: bool ? '' : '8vw' }} title={`${item.userName}${role.ID.includes(item.roleId) || item.isRoomManager ? role.ID.includes(item.roleId) ? '(管理员)' : '(发言人)' : ''}`}>
|
||||||
{item.userName}
|
{item.userName}
|
||||||
{item.roleId === '1' || item.isRoomManager ? item.roleId === '1' ? '(管理员)' : '(发言人)' : ''}
|
{role.ID.includes(item.roleId) || item.isRoomManager ? role.ID.includes(item.roleId) ? '(管理员)' : '(发言人)' : ''}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import {
|
||||||
} from "agora-electron-sdk";
|
} from "agora-electron-sdk";
|
||||||
import { GetRoomRtcToken, GetAgoraConf } from "@/api/Home/Index";
|
import { GetRoomRtcToken, GetAgoraConf } from "@/api/Home/Index";
|
||||||
import { storage } from '@/utils';
|
import { storage } from '@/utils';
|
||||||
|
import { role } from "@/config/role";
|
||||||
const option: any = {
|
const option: any = {
|
||||||
appId: '',
|
appId: '',
|
||||||
token: '',
|
token: '',
|
||||||
|
|
@ -271,7 +272,7 @@ export const agora = {
|
||||||
{
|
{
|
||||||
clientRoleType: bool ? ClientRoleType.ClientRoleAudience : ClientRoleType.ClientRoleBroadcaster, //用户角色 ClientRoleBroadcaster 主播 ClientRoleAudience 观众
|
clientRoleType: bool ? ClientRoleType.ClientRoleAudience : ClientRoleType.ClientRoleBroadcaster, //用户角色 ClientRoleBroadcaster 主播 ClientRoleAudience 观众
|
||||||
autoSubscribeAudio: false,//设置是否自动订阅所有音频流
|
autoSubscribeAudio: false,//设置是否自动订阅所有音频流
|
||||||
autoSubscribeVideo: user.roleId === '1' ? true : false,//设置是否自动订阅所有视频流
|
autoSubscribeVideo: role.ID.includes(user.roleId) ? true : false,//设置是否自动订阅所有视频流
|
||||||
publishMicrophoneTrack: false,//设置是否发布麦克风采集到的音频
|
publishMicrophoneTrack: false,//设置是否发布麦克风采集到的音频
|
||||||
publishCameraTrack: true,//设置是否发布摄像头采集的视频
|
publishCameraTrack: true,//设置是否发布摄像头采集的视频
|
||||||
publishScreenTrack: false,//设置是否发布屏幕采集的视频
|
publishScreenTrack: false,//设置是否发布屏幕采集的视频
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue