diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx
index 14588a4..6d323b9 100644
--- a/src/page/Meeting/index.tsx
+++ b/src/page/Meeting/index.tsx
@@ -108,6 +108,8 @@ const Meeting: React.FC = () => {
const [currentVideoId, setCurrentVideoId] = useState('')
let [currentSeconds, setCurrentSeconds] = useState(0)
const [currentEffective, setCurrentEffective] = useState(0)
+ const [isComputerAudio, setIsComputerAudio] = useState(true)
+ const [isFluencyPriority, setIsFluencyPriority] = useState(true)
const [open, setOpen] = useState(false)
const [modeOpen, setModeOpen] = useState(false)
const [meetingMode, setMeetingMode] = useState('')
@@ -470,7 +472,7 @@ const Meeting: React.FC = () => {
const footerListTemplate = [...footerList]
footerListTemplate[footerListIndex.itemIndex][footerListIndex.rowIndex].title = '停止共享'
setIsSharedScreenModal(false)
- await agora.setDesktopCapturerVideo(sharedScreenItem)
+ await agora.setDesktopCapturerVideo(sharedScreenItem, isComputerAudio, isFluencyPriority)
await allUserLook(user.screenShareId)
} else {
message.error('请选择应用!')
@@ -972,9 +974,14 @@ const Meeting: React.FC = () => {
})}
-
{
-
- }}>共享电脑音频
+
+ {
+ setIsComputerAudio(e.target.checked)
+ }} checked={isComputerAudio}>共享电脑音频
+ {
+ setIsFluencyPriority(e.target.checked)
+ }} checked={isFluencyPriority}>流畅度优先
+
diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts
index c3ac9eb..32ee21c 100644
--- a/src/utils/package/agora.ts
+++ b/src/utils/package/agora.ts
@@ -154,6 +154,7 @@ const agora = {
// 停止共享屏幕
stopScreenCapture: () => {
rtcEngine.stopScreenCapture();
+ rtcEngine.enableLoopbackRecording(false)
},
// 取消或恢复发布本地音频流
muteLocalAudioStream: (mute: any) => {
@@ -183,11 +184,22 @@ const agora = {
return rtcEngine.getScreenCaptureSources({ width: 300, height: 300 }, { width: 300, height: 300 }, true);
},
// 共享屏幕采集
- setDesktopCapturerVideo: async (targetSource: any) => {
- // await rtcEngine.stopCameraCapture(option.sourceType)
+ setDesktopCapturerVideo: async (targetSource: any, isComputerAudio: boolean, isFluencyPriority: boolean) => {
const user = JSON.parse(storage.getItem('user') as string)
agora.stopScreenCapture();
- rtcEngine.enableLoopbackRecording(true)
+ if (isComputerAudio) {
+ rtcEngine.enableLoopbackRecording(true)
+ }
+ let data = {};
+ if (isFluencyPriority) {
+ data = {
+ frameRate: 15,
+ dimensions: {
+ window: 3000,
+ height: 3000,
+ }
+ }
+ }
if (
targetSource.type ===
ScreenCaptureSourceType.ScreencapturesourcetypeScreen
@@ -199,6 +211,7 @@ const agora = {
windowFocus: true,
enableHighLight: true,
highLightColor: 0xFF99CC00,
+ ...data
}
);
} else {
@@ -209,6 +222,7 @@ const agora = {
windowFocus: true,
enableHighLight: true,
highLightColor: 0xFF99CC00,
+ ...data
}
);
}