gemercheung 1 рік тому
батько
коміт
12414f9b01
3 змінених файлів з 26 додано та 10 видалено
  1. 1 1
      src/App.vue
  2. 15 0
      src/components/chatRoom/memberList.vue
  3. 10 9
      src/hooks/useAgora.ts

+ 1 - 1
src/App.vue

@@ -368,7 +368,7 @@
       {{ maxNumber }}
     </span> -->
     <span>
-      {{ t('base.debuginfo') }}V:1.2.0-11,角色:{{ rtcStore.role }} rId:{{
+      {{ t('base.debuginfo') }}V:1.2.0-t1,角色:{{ rtcStore.role }} rId:{{
         rtcStore.roomId || browser.getURLParam('roomId')
       }}
       sceneIndex:{{ currentSceneIndex }} uid::

+ 15 - 0
src/components/chatRoom/memberList.vue

@@ -84,10 +84,13 @@
   import { useSocket } from '/@/hooks/userSocket';
   import { useI18n } from '/@/hooks/useI18n';
   import ImageIcon from '/@/components/basic/icon/index.vue';
+  import { useMiniApp } from '/@/hooks/useMiniApp';
+  import { useRtcSdk } from '/@/hooks/useTRTC';
   // import Dialog from '../basic/dialog';
   const rtcStore = useRtcStore();
   const { t } = useI18n();
   const role = computed(() => rtcStore.role);
+  const currentUserId = computed(() => rtcStore.userId);
 
   const isLeaderOrAssistant = computed(() => rtcStore.isLeader || rtcStore.isAssistant);
   const isNativeLeader = computed(() => rtcStore.isLeader);
@@ -155,12 +158,24 @@
   }
   function userCanSpeak(member: UserInfoType) {
     const { socket } = useSocket();
+    const { isUsingMiniApp } = useMiniApp();
+    const { unMutedAudio, mutedAudio } = useRtcSdk();
     member.IsMuted = !member.IsMuted;
     socket.emit('action', {
       type: 'users-muted',
       muted: member.IsMuted,
       userId: member.UserId,
     });
+    if (member.UserId === currentUserId.value) {
+      if (!isUsingMiniApp.value) {
+        console.warn('H5-主持人-操作MIC');
+        if (member.IsMuted) {
+          mutedAudio();
+        } else {
+          unMutedAudio();
+        }
+      }
+    }
   }
 </script>
 

+ 10 - 9
src/hooks/useAgora.ts

@@ -29,7 +29,7 @@ export const createAgoraClient = async (
     console.log('当前不支持');
   }
 
-  AgoraRTC.setLogLevel(4);
+  // AgoraRTC.setLogLevel();
 
   const role = rtcStore.role === 'leader' ? 'host' : 'audience';
   const client: IAgoraRTCClient = AgoraRTC.createClient({ mode: 'rtc', codec: 'vp9', role: role });
@@ -37,7 +37,8 @@ export const createAgoraClient = async (
   localClient = client;
   const uid = await client.join(String(sdkAppId), roomId, sign, userId);
   userID.value = userId;
-  console.log('client', uid, client);
+
+  console.warn('client', uid, client);
 
   client.on('volume-indicator', function (result) {
     result.forEach(function (volume, index) {
@@ -67,8 +68,6 @@ export const createAgoraClient = async (
       }
       const leader = rtcStore.getRoomLeader();
       console.error('unpublished-video', leader, user.uid === leader?.Id);
-      if (user.uid === leader?.Id) {
-      }
     }
   });
   //发布订阅
@@ -120,7 +119,6 @@ export const createAgoraClient = async (
         }
       }
       //主持人有相机的
-      console.warn('主持人看到::');
       console.warn('有VID leader发布流');
       await client.publish(localVideoTrack);
       localVideoTrack.setMuted(true);
@@ -128,12 +126,13 @@ export const createAgoraClient = async (
   }
 
   if (isHasMicrophone.value) {
-    console.warn('所有有MIC静音和发布');
     await client.publish(localAudioTrack);
     // 先play
+
     localAudioTrack.setVolume(120);
-    localAudioTrack.play();
     localAudioTrack.setMuted(true);
+    localAudioTrack.play();
+    console.warn('所有有MIC静音和发布', localAudioTrack.isPlaying);
   }
   //默认头闭摄像头
   muteVideoLeader.value = true;
@@ -154,13 +153,15 @@ export const mutedAudio = () => {
   //通用禁音方法
   console.error('mutedAudio');
   if (isHasMicrophone.value) {
+    console.log('localAudioTrack', localAudioTrack);
     localAudioTrack.setMuted(true);
   }
 };
-export const unMutedAudio = () => {
+export const unMutedAudio = async () => {
   //通用开音方法
   console.error('unMutedAudio');
   if (isHasMicrophone.value) {
+    console.log('localAudioTrack', localAudioTrack);
     localAudioTrack.setMuted(false);
   }
 };
@@ -190,5 +191,5 @@ export const switchToBackCam = async () => {
   await localClient.publish(localVideoTrack);
 };
 export const cleanAll = () => {
-  AgoraRTC.removeAllListeners();
+  // AgoraRTC.removeAllListeners();
 };