优化加入频道设置
This commit is contained in:
parent
2e26bdf63f
commit
043e86ed08
|
|
@ -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';
|
||||||
|
let time = null as any;
|
||||||
const JoinSetting = forwardRef((_props: any, ref: any) => {
|
const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
useImperativeHandle(ref, () => ({
|
useImperativeHandle(ref, () => ({
|
||||||
changeModal: (roomNum: string = '') => {
|
changeModal: (roomNum: string = '') => {
|
||||||
|
|
@ -21,10 +22,15 @@ const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
if (location.hash.indexOf('/meeting') === -1) {
|
if (location.hash.indexOf('/meeting') === -1) {
|
||||||
agora.init()
|
agora.init()
|
||||||
}
|
}
|
||||||
|
getDeviceList()
|
||||||
}
|
}
|
||||||
}))
|
}))
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const [user, setUser] = useState<any>({});
|
const [user, setUser] = useState<any>({});
|
||||||
|
const [deviceList, setDeviceList] = useState<any>({
|
||||||
|
audioList: [],
|
||||||
|
videoList: [],
|
||||||
|
});
|
||||||
const [joinRoomSettingModal, setJoinRoomSettingModal] = useState(false)
|
const [joinRoomSettingModal, setJoinRoomSettingModal] = useState(false)
|
||||||
const [joinRoomSettingForm, setJoinRoomSettingForm] = useState({
|
const [joinRoomSettingForm, setJoinRoomSettingForm] = useState({
|
||||||
list: [
|
list: [
|
||||||
|
|
@ -43,6 +49,37 @@ const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
],
|
],
|
||||||
roomNum: '',
|
roomNum: '',
|
||||||
})
|
})
|
||||||
|
const getDeviceList = (): void => {
|
||||||
|
time = setInterval(async () => {
|
||||||
|
const list = [...joinRoomSettingForm.list]
|
||||||
|
await agora.getAudioMediaList().then(res => {
|
||||||
|
setDeviceList({
|
||||||
|
...deviceList,
|
||||||
|
audioList: res.ecordingList
|
||||||
|
})
|
||||||
|
if (!res.ecordingList.length) {
|
||||||
|
list[0].active = false
|
||||||
|
setJoinRoomSettingForm({
|
||||||
|
...joinRoomSettingForm,
|
||||||
|
list
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
await agora.getVideoDeviceManager().then(res => {
|
||||||
|
setDeviceList({
|
||||||
|
...deviceList,
|
||||||
|
videoList: res.list
|
||||||
|
})
|
||||||
|
if (!res.list.length) {
|
||||||
|
list[1].active = false
|
||||||
|
setJoinRoomSettingForm({
|
||||||
|
...joinRoomSettingForm,
|
||||||
|
list
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}, 1000)
|
||||||
|
}
|
||||||
const isGetCheckoutRoomNum = async (roomNum: string, callBack: Function): Promise<void> => {
|
const isGetCheckoutRoomNum = async (roomNum: string, callBack: Function): Promise<void> => {
|
||||||
await GetCheckoutRoomNum(roomNum).then(res => {
|
await GetCheckoutRoomNum(roomNum).then(res => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
|
|
@ -72,6 +109,7 @@ const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
footer={null} centered
|
footer={null} centered
|
||||||
width={'500px'}
|
width={'500px'}
|
||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
|
clearInterval(time)
|
||||||
agora.release()
|
agora.release()
|
||||||
setJoinRoomSettingModal(false)
|
setJoinRoomSettingModal(false)
|
||||||
}}>
|
}}>
|
||||||
|
|
@ -104,6 +142,17 @@ const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
{
|
{
|
||||||
joinRoomSettingForm.list.map((item, index) => {
|
joinRoomSettingForm.list.map((item, index) => {
|
||||||
return <div key={index} onClick={async () => {
|
return <div key={index} onClick={async () => {
|
||||||
|
if (index === 0) {
|
||||||
|
if (!deviceList.audioList.length) {
|
||||||
|
message.error('未检测到麦克风!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (!deviceList.videoList.length) {
|
||||||
|
message.error('未检测到摄像头!')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
const list = [...joinRoomSettingForm.list]
|
const list = [...joinRoomSettingForm.list]
|
||||||
list[index].active = !list[index].active
|
list[index].active = !list[index].active
|
||||||
setJoinRoomSettingForm({
|
setJoinRoomSettingForm({
|
||||||
|
|
@ -134,6 +183,7 @@ const JoinSetting = forwardRef((_props: any, ref: any) => {
|
||||||
getRoomRtcToken(joinRoomSettingForm.roomNum, (token: string) => {
|
getRoomRtcToken(joinRoomSettingForm.roomNum, (token: string) => {
|
||||||
if (token) {
|
if (token) {
|
||||||
postRefresh(() => {
|
postRefresh(() => {
|
||||||
|
clearInterval(time)
|
||||||
setJoinRoomSettingModal(false)
|
setJoinRoomSettingModal(false)
|
||||||
GetRoomInfo(joinRoomSettingForm.roomNum).then(async (res) => {
|
GetRoomInfo(joinRoomSettingForm.roomNum).then(async (res) => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue