From 1ae5731b82cdf2d1172fa4db7dc437dc62060cc4 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 17 Jul 2024 11:16:53 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=98=E5=8E=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/package/agora.ts | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/utils/package/agora.ts b/src/utils/package/agora.ts index ee64f41..13ddb04 100644 --- a/src/utils/package/agora.ts +++ b/src/utils/package/agora.ts @@ -17,7 +17,6 @@ const option: any = { token: '', channelId: '', userid: '', - sourceType: '', } let iMediaRecorder: any = ''; let rtcEngine: any = ''; @@ -117,16 +116,29 @@ const agora = { storage.setItem('isJoin', false) }, // 加入频道 - joinChannel: () => { - rtcEngine.joinChannel(option.token, option.channelId, option.userid, { - channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景 - clientRoleType: ClientRoleType.ClientRoleBroadcaster, //用户角色 1主播 2观众 - publishMicrophoneTrack: true, //设置是否发布麦克风采集到的音频 - publishCameraTrack: true, //设置是否发布摄像头采集的视频 - publishScreenTrack: true, //设置是否发布屏幕采集的视频 - autoSubscribeAudio: true, //设置是否自动订阅所有音频流 - autoSubscribeVideo: true, //设置是否自动订阅所有视频流 - }); + joinChannel: (bool: boolean) => { + // false 摄像头 true 共享屏幕 + if (bool) { + rtcEngine.joinChannel(option.token, option.channelId, option.userid, { + channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景 + clientRoleType: ClientRoleType.ClientRoleBroadcaster, //用户角色 1主播 2观众 + publishMicrophoneTrack: true, //设置是否发布麦克风采集到的音频 + publishCameraTrack: false, //设置是否发布摄像头采集的视频 + publishScreenTrack: true, //设置是否发布屏幕采集的视频 + autoSubscribeAudio: true, //设置是否自动订阅所有音频流 + autoSubscribeVideo: true, //设置是否自动订阅所有视频流 + }); + } else { + rtcEngine.joinChannel(option.token, option.channelId, option.userid, { + channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景 + clientRoleType: ClientRoleType.ClientRoleBroadcaster, //设置用户角色为主播;如果要将用户角色设置为观众,保持默认值即可 + publishMicrophoneTrack: true, //发布麦克风采集的音频 + publishCameraTrack: true, //发布摄像头采集的视频 + publishScreenTrack: false, //设置是否发布屏幕采集的视频 + autoSubscribeAudio: true, //自动订阅所有音频流 + autoSubscribeVideo: true, //自动订阅所有视频流 + }); + } }, // 停止共享屏幕 stopScreenCapture: () => { @@ -149,7 +161,7 @@ const agora = { option.token = data.token; option.channelId = data.channelId; option.userid = Number(data.userid); - agora.joinChannel() + agora.joinChannel(false) }, // 桌面捕获音频和视频的媒体源的信息 getDesktopCapturerVideo: async () => { @@ -159,7 +171,6 @@ const agora = { setDesktopCapturerVideo: (targetSource: any, sourceType: number) => { // rtcEngine.stopCameraCapture(VideoSourceType.VideoSourceCamera); agora.stopScreenCapture(); - // rtcEngine.destroyRendererByConfig(VideoSourceType.VideoSourceCameraPrimary, option.channelId, option.account) if ( targetSource.type === ScreenCaptureSourceType.ScreencapturesourcetypeScreen