fuliqi
2024-08-15 02b9931c5e3a54d69d4d20a9dc6aad141fc35141
恢复举手,隐藏举手顶部显示
1个文件已修改
84 ■■■■■ 已修改文件
src/views/meet/index.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/meet/index.vue
@@ -5,17 +5,18 @@
</template>
<script setup>
import { ref, watch, onMounted } from 'vue';
import { useRoute } from 'vue-router';
import {ref, watch, onMounted} from 'vue';
import {useRoute} from 'vue-router';
import useWebScoket from "@/hooks/useWebScoket.js";
import { storeToRefs } from 'pinia';
import { useUserStore } from '@/store/index.js';
import {storeToRefs} from 'pinia';
import {useUserStore} from '@/store/index.js';
const route = useRoute();
const meet = ref(null);
const userStore = useUserStore();
const { userInfo } = storeToRefs(userStore);
const { meetName, id, userName, userCode } = route.query;
const {userInfo} = storeToRefs(userStore);
const {meetName, id, userName, userCode} = route.query;
let jitsiApi = null;
onMounted(() => {
  const width = window.innerWidth;
@@ -35,6 +36,26 @@
      gravatar: {
        disabled: true
      },
      // 控制顶部标题会议信息标签的可见性和行为。
      // 如果标签的 ID 不在上述两个数组中的任何一个中,则它在标题上根本不可见。
      conferenceInfo: {
        // 这些标签不会与工具箱一起隐藏。
        alwaysVisible: ['recording'],
        // 这些标签将与工具箱按钮一起自动隐藏。
        autoHide: [
          // 'raised-hands-count',
          'subject',
          'conference-timer',
          'participants-count',
          'e2ee',
          'video-quality',
          'insecure-room',
          'highlight-moment',
          'top-panel-toggle',
        ]
      },
      ModeratorIndicator: true,
      startSilent: true,
      //禁用改名
      readOnlyName: true,
      //参会者名单
@@ -45,34 +66,23 @@
        disabledDemote: false
      },
      // 自定义按钮
      // 自定义按钮
      toolbarButtons: [
        // 摄像头
        'camera',
        // 聊天
        'chat',
        // 'closedcaptions',
        // 共享
        'desktop',
        'download',
        // 'embedmeeting',
        // 'etherpad',
        // 'feedback',
        // 'filmstrip',
        'fullscreen',
        'hangup',
        // 'help',
        'highlight',
        // 'invite',
        'linktosalesforce',
        'livestreaming',
        'microphone',
        'noisesuppression',
        // 'participants-pane',
        // 'profile',
        // 'raisehand',
        'raisehand',
        'recording',
        // 'security',
        'select-background',
        'settings',
        'shareaudio',
@@ -81,7 +91,17 @@
        'stats',
        'tileview',
        'toggle-camera',
        // 'videoquality',
        // 'closedcaptions',
        // 'embedmeeting',
        // 'etherpad',
        // 'feedback',
        // 'filmstrip',
        // 'help',
        // 'invite',
        // 'participants-pane',
        // 'profile',
        // 'security',
        'videoquality',
        'whiteboard'
      ],
      // 禁用邀请
@@ -119,25 +139,25 @@
  });
}
const { status, message, error, connect, disconnect, sendMessage } = useWebScoket({
const {status, message, error, connect, disconnect, sendMessage} = useWebScoket({
  url: 'ws://127.0.0.1:8000/websocket/' + userInfo._rawValue.id,
  heartBeatData: 'ping'
});
watch(
  () => message.value,
  (msg) => {
    console.log('msg', msg.commend);
    if (msg.commend === 'kickOut') {
      jitsiApi.executeCommand('hangup');
    () => message.value,
    (msg) => {
      console.log('msg', msg.commend);
      if (msg.commend === 'kickOut') {
        jitsiApi.executeCommand('hangup');
      }
      if (msg.commend === 'mute') {
        jitsiApi.executeCommand('toggleAudio');
      }
      if (msg.commend === 'openCamera') {
        jitsiApi.executeCommand('toggleVideo');
      }
    }
    if (msg.commend === 'mute') {
      jitsiApi.executeCommand('toggleAudio');
    }
    if (msg.commend === 'openCamera') {
      jitsiApi.executeCommand('toggleVideo');
    }
  }
);