yangjie #16
|
|
@ -160,7 +160,7 @@ const Meeting: React.FC = () => {
|
||||||
const [noViewChatList, setNoViewChatList] = useState(0)
|
const [noViewChatList, setNoViewChatList] = useState(0)
|
||||||
const [currentLookUserAccount, setCurrentLookUserAccount] = useState<any>('')
|
const [currentLookUserAccount, setCurrentLookUserAccount] = useState<any>('')
|
||||||
const [recorder, setRecorder] = useState<any>('')
|
const [recorder, setRecorder] = useState<any>('')
|
||||||
const [mediaStream, setMediaStream] = useState<any>('')
|
const [_mediaStream, setMediaStream] = useState<any>('')
|
||||||
const [isShare, setIsShare] = useState<any>(null)
|
const [isShare, setIsShare] = useState<any>(null)
|
||||||
const [isSharePopConfirm, setIsSharePopConfirm] = useState<any>(false)
|
const [isSharePopConfirm, setIsSharePopConfirm] = useState<any>(false)
|
||||||
const [isShareUser, setIsShareUser] = useState<any>(null)
|
const [isShareUser, setIsShareUser] = useState<any>(null)
|
||||||
|
|
@ -570,6 +570,8 @@ const Meeting: React.FC = () => {
|
||||||
const buffer = Buffer.from(reader.result);
|
const buffer = Buffer.from(reader.result);
|
||||||
const mp4Path = `${setting.recordingFilesPath}会议录制_${state.roomName}_${state.channelId}_${dayjs().format('YYYY年MM月DD日HH时mm分')}.webm`;
|
const mp4Path = `${setting.recordingFilesPath}会议录制_${state.roomName}_${state.channelId}_${dayjs().format('YYYY年MM月DD日HH时mm分')}.webm`;
|
||||||
await fs.writeFile(mp4Path, buffer, {});
|
await fs.writeFile(mp4Path, buffer, {});
|
||||||
|
setRecorder('')
|
||||||
|
setMediaStream('')
|
||||||
confirm({
|
confirm({
|
||||||
title: '提示',
|
title: '提示',
|
||||||
icon: <ExclamationCircleFilled />,
|
icon: <ExclamationCircleFilled />,
|
||||||
|
|
@ -1071,7 +1073,6 @@ const Meeting: React.FC = () => {
|
||||||
footerListTemplate[itemIndex][rowIndex].title = '录制中';
|
footerListTemplate[itemIndex][rowIndex].title = '录制中';
|
||||||
footerListTemplate[itemIndex][rowIndex].active = true;
|
footerListTemplate[itemIndex][rowIndex].active = true;
|
||||||
setFooterList(footerListTemplate);
|
setFooterList(footerListTemplate);
|
||||||
|
|
||||||
window.electron.getSources().then(async (sources: any) => {
|
window.electron.getSources().then(async (sources: any) => {
|
||||||
const screenId = sources[0].id;
|
const screenId = sources[0].id;
|
||||||
const stream = await navigator.mediaDevices.getUserMedia({
|
const stream = await navigator.mediaDevices.getUserMedia({
|
||||||
|
|
@ -1167,16 +1168,20 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
// 停止录制
|
// 停止录制
|
||||||
const stopRecorderMedia = async (): Promise<void> => {
|
const stopRecorderMedia = async (): Promise<void> => {
|
||||||
if (recorder) {
|
setRecorder((res: any) => {
|
||||||
await recorder.stop();
|
if (res) {
|
||||||
|
res.stop();
|
||||||
}
|
}
|
||||||
if (mediaStream) {
|
return res
|
||||||
await mediaStream.getTracks().forEach((track: any) => {
|
})
|
||||||
|
setMediaStream((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
res.getTracks().forEach((track: any) => {
|
||||||
track.stop()
|
track.stop()
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
setRecorder('')
|
return res
|
||||||
setMediaStream('')
|
})
|
||||||
}
|
}
|
||||||
// 退出房间
|
// 退出房间
|
||||||
const leaveChannel = async (bool: boolean = true): Promise<void> => {
|
const leaveChannel = async (bool: boolean = true): Promise<void> => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue