wkw 1 месяц назад
Родитель
Сommit
fa082a8f42
2 измененных файлов с 13 добавлено и 4 удалено
  1. 3 3
      src/stores/modules/webSocketStore.js
  2. 10 1
      src/views/im/chat/index.vue

+ 3 - 3
src/stores/modules/webSocketStore.js

@@ -160,7 +160,7 @@ export const useWebSocketStore = defineStore("webSocketStore", {
           }
 
           console.log("WebSocket 连接成功");
-          showNotify({ type: 'success', message: '服务器连接成功' });
+          // showNotify({ type: 'success', message: '服务器连接成功' });
           this.flushMessageQueue(); // 连接成功后立即发送队列中的消息
         };
 
@@ -171,7 +171,7 @@ export const useWebSocketStore = defineStore("webSocketStore", {
 
         this.socket.onclose = () => {
           this.connectionState = "disconnected";
-          showNotify({ type: 'warning', message: '服务器连接断开' });
+          // showNotify({ type: 'warning', message: '服务器连接断开' });
           this.cleanupTimers();
 
           if (
@@ -185,7 +185,7 @@ export const useWebSocketStore = defineStore("webSocketStore", {
         this.socket.onerror = (error) => {
           this.connectionState = "error";
           console.error("WebSocket 错误并 重新连接:", error);
-          showNotify({ type: 'warning', message: '服务器连接断开' });
+          // showNotify({ type: 'warning', message: '服务器连接断开' });
           this.cleanupTimers();
           this.scheduleReconnect();
         };

+ 10 - 1
src/views/im/chat/index.vue

@@ -660,7 +660,7 @@ let mediaRecorder = null;
 let audioChunks = [];
 
 // 切换文字/语音输入模式
-const toggleVoiceMode = () => {
+const toggleVoiceMode = async () => {
   if(!wsStore.verifyChatAuth(wsStore.toUserInfo.uuid)){
     showToast(`${wsStore.toUserInfo.type == 'user' ? '对方已删除' : '您已不在群聊里面'}`);
     return;
@@ -672,6 +672,15 @@ const toggleVoiceMode = () => {
   if (isMobile) Keyboard.hide();
   keyboardHeight.value = 0;
   scrollToBottom();
+  if(voiceMode.value){
+    try {
+      const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
+      stream.getTracks().forEach(t => t.stop()); // 只申请权限,不录音
+      console.log("麦克风权限已授权");
+    } catch (err) {
+      console.error("麦克风权限拒绝", err);
+    }
+  }
 };
 
 // 录音事件