|
@@ -789,29 +789,17 @@ export const ClassroomPage = () => {
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
if (isCameraOn) {
|
|
if (isCameraOn) {
|
|
|
- // await leaveRtcChannel();
|
|
|
|
|
- // await joinRtcChannel(classId, {
|
|
|
|
|
- // publishVideo: false,
|
|
|
|
|
- // publishAudio: isAudioOn,
|
|
|
|
|
- // publishScreen: isScreenSharing
|
|
|
|
|
- // });
|
|
|
|
|
await aliRtcEngine.current?.stopPreview();
|
|
await aliRtcEngine.current?.stopPreview();
|
|
|
await aliRtcEngine.current?.enableLocalVideo(false)
|
|
await aliRtcEngine.current?.enableLocalVideo(false)
|
|
|
await aliRtcEngine.current?.publishLocalVideoStream(false)
|
|
await aliRtcEngine.current?.publishLocalVideoStream(false)
|
|
|
} else {
|
|
} else {
|
|
|
- // await leaveRtcChannel();
|
|
|
|
|
- // await joinRtcChannel(classId, {
|
|
|
|
|
- // publishVideo: true,
|
|
|
|
|
- // publishAudio: isAudioOn,
|
|
|
|
|
- // publishScreen: isScreenSharing
|
|
|
|
|
- // });
|
|
|
|
|
await aliRtcEngine.current?.setLocalViewConfig('localPreviewer', AliRtcVideoTrack.AliRtcVideoTrackCamera);
|
|
await aliRtcEngine.current?.setLocalViewConfig('localPreviewer', AliRtcVideoTrack.AliRtcVideoTrackCamera);
|
|
|
await aliRtcEngine.current?.enableLocalVideo(true)
|
|
await aliRtcEngine.current?.enableLocalVideo(true)
|
|
|
await aliRtcEngine.current?.startPreview();
|
|
await aliRtcEngine.current?.startPreview();
|
|
|
await aliRtcEngine.current?.publishLocalVideoStream(true)
|
|
await aliRtcEngine.current?.publishLocalVideoStream(true)
|
|
|
- await aliRtcEngine.current?.startAndPublishDefaultDevices()
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ await aliRtcEngine.current?.startAndPublishDefaultDevices()
|
|
|
setIsCameraOn(!isCameraOn);
|
|
setIsCameraOn(!isCameraOn);
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.error('切换摄像头状态失败:', err);
|
|
console.error('切换摄像头状态失败:', err);
|
|
@@ -821,13 +809,19 @@ export const ClassroomPage = () => {
|
|
|
|
|
|
|
|
// 切换音频状态
|
|
// 切换音频状态
|
|
|
const toggleAudio = async () => {
|
|
const toggleAudio = async () => {
|
|
|
|
|
+ if(!aliRtcEngine.current?.isInCall){
|
|
|
|
|
+ showToast('error', '先加入课堂');
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
try {
|
|
try {
|
|
|
- await leaveRtcChannel();
|
|
|
|
|
- await joinRtcChannel(classId, {
|
|
|
|
|
- publishVideo: isCameraOn,
|
|
|
|
|
- publishAudio: !isAudioOn,
|
|
|
|
|
- publishScreen: isScreenSharing
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ if (isAudioOn) {
|
|
|
|
|
+ await aliRtcEngine.current?.stopAudioCapture()
|
|
|
|
|
+ await aliRtcEngine.current?.publishLocalAudioStream(false);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ await aliRtcEngine.current?.publishLocalAudioStream(true);
|
|
|
|
|
+ }
|
|
|
|
|
+ await aliRtcEngine.current?.startAndPublishDefaultDevices();
|
|
|
setIsAudioOn(!isAudioOn);
|
|
setIsAudioOn(!isAudioOn);
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.error('切换麦克风状态失败:', err);
|
|
console.error('切换麦克风状态失败:', err);
|
|
@@ -844,37 +838,16 @@ export const ClassroomPage = () => {
|
|
|
|
|
|
|
|
try {
|
|
try {
|
|
|
if (isScreenSharing) {
|
|
if (isScreenSharing) {
|
|
|
- // await leaveRtcChannel();
|
|
|
|
|
- // await joinRtcChannel(classId, {
|
|
|
|
|
- // publishVideo: isCameraOn,
|
|
|
|
|
- // publishAudio: isAudioOn,
|
|
|
|
|
- // publishScreen: false
|
|
|
|
|
- // });
|
|
|
|
|
- // await aliRtcEngine.current?.stopPreviewScreen();
|
|
|
|
|
await aliRtcEngine.current?.publishLocalScreenShareStream(false)
|
|
await aliRtcEngine.current?.publishLocalScreenShareStream(false)
|
|
|
await aliRtcEngine.current?.stopScreenShare()
|
|
await aliRtcEngine.current?.stopScreenShare()
|
|
|
} else {
|
|
} else {
|
|
|
- // await leaveRtcChannel();
|
|
|
|
|
- // // 设置屏幕分享预览视图
|
|
|
|
|
- // await joinRtcChannel(classId, {
|
|
|
|
|
- // publishVideo: isCameraOn,
|
|
|
|
|
- // publishAudio: isAudioOn,
|
|
|
|
|
- // publishScreen: true
|
|
|
|
|
- // });
|
|
|
|
|
await aliRtcEngine.current?.publishLocalScreenShareStream(true)
|
|
await aliRtcEngine.current?.publishLocalScreenShareStream(true)
|
|
|
await aliRtcEngine.current?.setLocalViewConfig(
|
|
await aliRtcEngine.current?.setLocalViewConfig(
|
|
|
'screenPreviewer',
|
|
'screenPreviewer',
|
|
|
AliRtcVideoTrack.AliRtcVideoTrackScreen
|
|
AliRtcVideoTrack.AliRtcVideoTrackScreen
|
|
|
);
|
|
);
|
|
|
- await aliRtcEngine.current?.startAndPublishDefaultDevices()
|
|
|
|
|
- // await aliRtcEngine.current?.startPreviewScreen({
|
|
|
|
|
- // audio: isAudioOn, // 根据音频状态决定是否共享音频
|
|
|
|
|
- // videoTrack: undefined, // 使用默认视频轨道
|
|
|
|
|
- // audioTrack: undefined // 使用默认音频轨道
|
|
|
|
|
- // });
|
|
|
|
|
- // await aliRtcEngine.current?.startPreviewScreen()
|
|
|
|
|
- // await aliRtcEngine.current?.startScreenShare()
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ await aliRtcEngine.current?.startAndPublishDefaultDevices()
|
|
|
setIsScreenSharing(!isScreenSharing);
|
|
setIsScreenSharing(!isScreenSharing);
|
|
|
} catch (err) {
|
|
} catch (err) {
|
|
|
console.error('切换屏幕分享失败:', err);
|
|
console.error('切换屏幕分享失败:', err);
|