jssz-meeting-component 1.2.14 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -176,10 +176,7 @@ const _sfc_main$1c = {
176
176
  },
177
177
  setup(__props) {
178
178
  return (_ctx, _cache) => {
179
- return openBlock(), createBlock(Transition, {
180
- name: "fade",
181
- to: "body"
182
- }, {
179
+ return openBlock(), createBlock(Transition, { name: "fade" }, {
183
180
  default: withCtx(() => [
184
181
  __props.visible ? (openBlock(), createElementBlock("div", {
185
182
  key: 0,
@@ -220,12 +217,12 @@ const _sfc_main$1c = {
220
217
  };
221
218
  }
222
219
  };
223
- const Loading = /* @__PURE__ */ _export_sfc(_sfc_main$1c, [["__scopeId", "data-v-ba22629b"]]);
220
+ const Loading = /* @__PURE__ */ _export_sfc(_sfc_main$1c, [["__scopeId", "data-v-7f7409c4"]]);
224
221
  function createDirective(globalOptions = {}) {
225
222
  function createInstance2(el2, binding) {
226
223
  const fullscreen = el2 === document.body;
227
224
  const textColor = globalOptions.textColor || "#409eff";
228
- const zIndex = globalOptions.zIndex || 2e3;
225
+ const zIndex = globalOptions.zIndex || 1e5;
229
226
  const props = reactive({
230
227
  visible: binding.value,
231
228
  fullscreen,
@@ -289,7 +286,7 @@ function createService(globalOptions = {}) {
289
286
  target: target2 = document.body,
290
287
  // background = globalOptions.background || 'rgba(255,255,255,0.7)',
291
288
  textColor = globalOptions.textColor || "#409eff",
292
- zIndex = globalOptions.zIndex || 2e3
289
+ zIndex = globalOptions.zIndex || 1e5
293
290
  } = options;
294
291
  const props = reactive({
295
292
  visible: true,
@@ -37715,78 +37712,6 @@ function markNetworkDisconnected() {
37715
37712
  );
37716
37713
  handleLevelNotification("lost");
37717
37714
  }
37718
- const runtimeLoaders = /* @__PURE__ */ new Map();
37719
- function loadRnnoiseRuntime(basePath) {
37720
- if (window.RNNoiseNode) {
37721
- return Promise.resolve();
37722
- }
37723
- const url = `${basePath}rnnoise-runtime.js`;
37724
- let loader = runtimeLoaders.get(url);
37725
- if (loader) {
37726
- return loader;
37727
- }
37728
- loader = new Promise((resolve, reject) => {
37729
- const script = document.createElement("script");
37730
- script.src = url;
37731
- script.onload = () => resolve();
37732
- script.onerror = () => reject(new Error(`加载 rnnoise-runtime.js 失败: ${url}`));
37733
- document.head.appendChild(script);
37734
- });
37735
- runtimeLoaders.set(url, loader);
37736
- return loader;
37737
- }
37738
- class RnnoiseProcessor {
37739
- constructor(options = {}) {
37740
- this.name = "rnnoise";
37741
- this.ownContext = false;
37742
- this.basePath = options.basePath ?? "/";
37743
- }
37744
- async init(options) {
37745
- if (options.kind !== Bn.Audio) {
37746
- throw new Error("RnnoiseProcessor 仅支持音频轨道");
37747
- }
37748
- await loadRnnoiseRuntime(this.basePath);
37749
- if (options.audioContext) {
37750
- this.audioContext = options.audioContext;
37751
- this.ownContext = false;
37752
- } else {
37753
- this.audioContext = new (window.AudioContext || window.webkitAudioContext)({
37754
- sampleRate: 48e3,
37755
- latencyHint: "interactive"
37756
- });
37757
- this.ownContext = true;
37758
- }
37759
- await RNNoiseNode.register(this.audioContext);
37760
- this.sourceNode = this.audioContext.createMediaStreamSource(new MediaStream([options.track]));
37761
- this.rnnoiseNode = new RNNoiseNode(this.audioContext);
37762
- this.destinationNode = this.audioContext.createMediaStreamDestination();
37763
- this.sourceNode.connect(this.rnnoiseNode);
37764
- this.rnnoiseNode.connect(this.destinationNode);
37765
- const tracks = this.destinationNode.stream.getAudioTracks();
37766
- if (!tracks.length) {
37767
- throw new Error("RnnoiseProcessor 未产出音频轨道");
37768
- }
37769
- this.processedTrack = tracks[0];
37770
- }
37771
- async destroy() {
37772
- var _a25, _b25, _c2, _d;
37773
- try {
37774
- (_a25 = this.rnnoiseNode) == null ? void 0 : _a25.update(false);
37775
- } catch {
37776
- }
37777
- (_b25 = this.sourceNode) == null ? void 0 : _b25.disconnect();
37778
- (_c2 = this.rnnoiseNode) == null ? void 0 : _c2.disconnect();
37779
- (_d = this.destinationNode) == null ? void 0 : _d.disconnect();
37780
- if (this.ownContext && this.audioContext && this.audioContext.state !== "closed") {
37781
- await this.audioContext.close();
37782
- }
37783
- this.sourceNode = void 0;
37784
- this.rnnoiseNode = void 0;
37785
- this.destinationNode = void 0;
37786
- this.audioContext = void 0;
37787
- this.processedTrack = void 0;
37788
- }
37789
- }
37790
37715
  const alertMsg = "需要浏览器授权麦克风摄像头访问,才能进行音视频通话。请依次点击右上角三个点 > 设置 > 隐私设置和安全性 > 网站设置 > 摄像头或麦克风,把权限更改为 允许 。";
37791
37716
  const deviceInfo = reactive({
37792
37717
  speakers: [],
@@ -38265,7 +38190,6 @@ async function stopAndUnpublishLocalMicTrack() {
38265
38190
  if (!track) return;
38266
38191
  try {
38267
38192
  await srtc.unpublishLocalTrack(track);
38268
- await track.removeProcessor();
38269
38193
  } catch (_2) {
38270
38194
  }
38271
38195
  try {
@@ -39057,8 +38981,6 @@ function openMic() {
39057
38981
  noiseSuppression: true,
39058
38982
  autoGainControl: true
39059
38983
  });
39060
- await track.setProcessor(new RnnoiseProcessor({ basePath: "/rnnoise/" }));
39061
- console.log(11111111111111112e12);
39062
38984
  await srtc.publishLocalTrack(track, {
39063
38985
  priority: "high"
39064
38986
  });
@@ -41118,7 +41040,7 @@ const _hoisted_10$d = {
41118
41040
  const _hoisted_11$c = ["onDblclick"];
41119
41041
  const _hoisted_12$c = ["checked", "disabled", "onChange"];
41120
41042
  const _hoisted_13$a = { class: "card-body" };
41121
- const _hoisted_14$9 = { class: "user" };
41043
+ const _hoisted_14$a = { class: "user" };
41122
41044
  const _hoisted_15$8 = { class: "avatar large" };
41123
41045
  const _hoisted_16$7 = { class: "meta" };
41124
41046
  const _hoisted_17$6 = { class: "user-name" };
@@ -41370,7 +41292,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
41370
41292
  (openBlock(), createElementBlock(Fragment, null, renderList(12, (n2) => {
41371
41293
  return createElementVNode("div", {
41372
41294
  key: n2,
41373
- class: "skeleton"
41295
+ class: "skeleton-con"
41374
41296
  }, [
41375
41297
  createVNode(Skeleton)
41376
41298
  ]);
@@ -41390,7 +41312,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
41390
41312
  onChange: ($event) => toggleUser(user)
41391
41313
  }, null, 40, _hoisted_12$c),
41392
41314
  createElementVNode("div", _hoisted_13$a, [
41393
- createElementVNode("div", _hoisted_14$9, [
41315
+ createElementVNode("div", _hoisted_14$a, [
41394
41316
  createElementVNode("div", _hoisted_15$8, toDisplayString((user.name || "").charAt(0)), 1),
41395
41317
  createElementVNode("div", _hoisted_16$7, [
41396
41318
  createElementVNode("div", _hoisted_17$6, toDisplayString(user.name) + "(" + toDisplayString(user.shortNumber) + ") ", 1),
@@ -41477,7 +41399,7 @@ const _sfc_main$s = /* @__PURE__ */ defineComponent({
41477
41399
  };
41478
41400
  }
41479
41401
  });
41480
- const JSUser = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-9cf6c83a"]]);
41402
+ const JSUser = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["__scopeId", "data-v-0d2f3a42"]]);
41481
41403
  var RoomModalSelectType = /* @__PURE__ */ ((RoomModalSelectType2) => {
41482
41404
  RoomModalSelectType2["microphoneClick"] = "microphoneClick";
41483
41405
  RoomModalSelectType2["cameraClick"] = "cameraClick";
@@ -41649,7 +41571,7 @@ const _hoisted_11$b = {
41649
41571
  };
41650
41572
  const _hoisted_12$b = { class: "section-title" };
41651
41573
  const _hoisted_13$9 = ["onClick"];
41652
- const _hoisted_14$8 = { class: "label" };
41574
+ const _hoisted_14$9 = { class: "label" };
41653
41575
  const _hoisted_15$7 = {
41654
41576
  key: 0,
41655
41577
  class: "empty-device"
@@ -41687,7 +41609,6 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41687
41609
  if (id !== deviceInfo.microPhoneId) {
41688
41610
  try {
41689
41611
  await switchMicrophone(id);
41690
- deviceInfo.microPhoneId = id;
41691
41612
  } catch (error) {
41692
41613
  console.error("切换麦克风失败:", error);
41693
41614
  alert(
@@ -41700,7 +41621,6 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41700
41621
  if (id !== deviceInfo.cameraId) {
41701
41622
  try {
41702
41623
  await switchCamera(id);
41703
- deviceInfo.cameraId = id;
41704
41624
  emit("close");
41705
41625
  } catch (error) {
41706
41626
  console.error("切换摄像头失败:", error);
@@ -41780,7 +41700,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41780
41700
  createElementVNode("span", {
41781
41701
  class: normalizeClass(["check", { show: cam.deviceId === cameraId.value }])
41782
41702
  }, "✓", 2),
41783
- createElementVNode("span", _hoisted_14$8, toDisplayString(formatDeviceLabel(cam.label)), 1)
41703
+ createElementVNode("span", _hoisted_14$9, toDisplayString(formatDeviceLabel(cam.label)), 1)
41784
41704
  ], 8, _hoisted_13$9);
41785
41705
  }), 128)),
41786
41706
  !cameras.value.length ? (openBlock(), createElementBlock("div", _hoisted_15$7, " 暂无摄像头,请检查电脑设备 ")) : createCommentVNode("", true)
@@ -41789,7 +41709,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
41789
41709
  };
41790
41710
  }
41791
41711
  });
41792
- const DeviceSelector = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-ced67da8"]]);
41712
+ const DeviceSelector = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-30a7a3c3"]]);
41793
41713
  const _hoisted_1$n = ["title"];
41794
41714
  const _hoisted_2$l = {
41795
41715
  class: "signal-bars",
@@ -41812,7 +41732,7 @@ const _hoisted_10$b = { class: "popup-grid" };
41812
41732
  const _hoisted_11$a = { class: "popup-item-label" };
41813
41733
  const _hoisted_12$a = { class: "popup-item-value" };
41814
41734
  const _hoisted_13$8 = { class: "popup-section" };
41815
- const _hoisted_14$7 = { class: "popup-grid" };
41735
+ const _hoisted_14$8 = { class: "popup-grid" };
41816
41736
  const _hoisted_15$6 = { class: "popup-item-label" };
41817
41737
  const _hoisted_16$6 = { class: "popup-item-value" };
41818
41738
  const _hoisted_17$5 = { class: "popup-header" };
@@ -42203,7 +42123,7 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
42203
42123
  ]),
42204
42124
  createElementVNode("div", _hoisted_13$8, [
42205
42125
  _cache[6] || (_cache[6] = createElementVNode("div", { class: "popup-section-title" }, "网络指标", -1)),
42206
- createElementVNode("div", _hoisted_14$7, [
42126
+ createElementVNode("div", _hoisted_14$8, [
42207
42127
  (openBlock(true), createElementBlock(Fragment, null, renderList(overviewItems.value, (item) => {
42208
42128
  return openBlock(), createElementBlock("div", {
42209
42129
  key: item.label,
@@ -42345,7 +42265,7 @@ const _hoisted_10$a = { class: "status-right" };
42345
42265
  const _hoisted_11$9 = ["onClick"];
42346
42266
  const _hoisted_12$9 = { class: "video-wrapper" };
42347
42267
  const _hoisted_13$7 = ["id"];
42348
- const _hoisted_14$6 = { class: "avatar-container" };
42268
+ const _hoisted_14$7 = { class: "avatar-container" };
42349
42269
  const _hoisted_15$5 = { class: "avatar" };
42350
42270
  const _hoisted_16$5 = { class: "video-loading-overlay" };
42351
42271
  const _hoisted_17$4 = { class: "video-loading-text" };
@@ -42773,7 +42693,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
42773
42693
  }, null, 8, _hoisted_13$7), [
42774
42694
  [vShow, (user == null ? void 0 : user.cameraStatus) === "1"]
42775
42695
  ]),
42776
- withDirectives(createElementVNode("div", _hoisted_14$6, [
42696
+ withDirectives(createElementVNode("div", _hoisted_14$7, [
42777
42697
  createElementVNode("div", _hoisted_15$5, toDisplayString(unref(getUserAvatar)(user)), 1)
42778
42698
  ], 512), [
42779
42699
  [vShow, (user == null ? void 0 : user.cameraStatus) !== "1"]
@@ -43936,7 +43856,7 @@ const _hoisted_10$8 = { key: 1 };
43936
43856
  const _hoisted_11$7 = { class: "js-member-actions" };
43937
43857
  const _hoisted_12$7 = ["onClick"];
43938
43858
  const _hoisted_13$6 = ["onClick"];
43939
- const _hoisted_14$5 = ["onClick"];
43859
+ const _hoisted_14$6 = ["onClick"];
43940
43860
  const _hoisted_15$4 = ["id"];
43941
43861
  const _hoisted_16$4 = ["onClick"];
43942
43862
  const _hoisted_17$3 = ["onClick"];
@@ -44229,7 +44149,7 @@ const _sfc_main$j = /* @__PURE__ */ defineComponent({
44229
44149
  onClick: ($event) => kickOut(member.member.memberId)
44230
44150
  }, " 移出会议 ", 8, _hoisted_17$3)
44231
44151
  ], 10, _hoisted_15$4)) : createCommentVNode("", true)
44232
- ], 8, _hoisted_14$5)) : createCommentVNode("", true)
44152
+ ], 8, _hoisted_14$6)) : createCommentVNode("", true)
44233
44153
  ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
44234
44154
  member.roleType !== "5" ? (openBlock(), createBlock(SvgIcon, {
44235
44155
  key: 0,
@@ -44298,7 +44218,7 @@ const _hoisted_10$7 = {
44298
44218
  const _hoisted_11$6 = { class: "chat-input-toolbar" };
44299
44219
  const _hoisted_12$6 = { class: "image-upload-wrapper" };
44300
44220
  const _hoisted_13$5 = { class: "emoji-picker-popup-global" };
44301
- const _hoisted_14$4 = ["onClick"];
44221
+ const _hoisted_14$5 = ["onClick"];
44302
44222
  const _sfc_main$i = /* @__PURE__ */ defineComponent({
44303
44223
  __name: "Chat",
44304
44224
  setup(__props) {
@@ -44839,7 +44759,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
44839
44759
  key: emoji,
44840
44760
  class: "emoji-item",
44841
44761
  onClick: ($event) => selectEmoji(emoji)
44842
- }, toDisplayString(emoji), 9, _hoisted_14$4);
44762
+ }, toDisplayString(emoji), 9, _hoisted_14$5);
44843
44763
  }), 64))
44844
44764
  ])
44845
44765
  ]),
@@ -45432,7 +45352,10 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
45432
45352
  const Tree = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-b9399b47"]]);
45433
45353
  const _hoisted_1$b = { class: "js-invite-modal-content-left" };
45434
45354
  const _hoisted_2$b = { class: "search" };
45435
- const _hoisted_3$b = { class: "js-tree-container" };
45355
+ const _hoisted_3$b = {
45356
+ class: "js-tree-container",
45357
+ "loading-text": "加载中..."
45358
+ };
45436
45359
  const _hoisted_4$9 = {
45437
45360
  key: 0,
45438
45361
  class: "js-empty"
@@ -45446,6 +45369,7 @@ const _hoisted_10$6 = { class: "js-selected-users" };
45446
45369
  const _hoisted_11$5 = { class: "js-selected-item-info" };
45447
45370
  const _hoisted_12$5 = { class: "js-selected-item-avatar" };
45448
45371
  const _hoisted_13$4 = { class: "js-selected-item-name" };
45372
+ const _hoisted_14$4 = { class: "js-modal-right-footer" };
45449
45373
  const _sfc_main$c = /* @__PURE__ */ defineComponent({
45450
45374
  __name: "Invite",
45451
45375
  props: {
@@ -45459,6 +45383,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45459
45383
  const themeClass = computed(() => `theme-${props.theme}`);
45460
45384
  const emit = __emit;
45461
45385
  const isVisible = computed(() => props.visible);
45386
+ const loading = ref(false);
45462
45387
  const treeData = ref([]);
45463
45388
  const originalTreeData = ref([]);
45464
45389
  const searchKeyword = ref("");
@@ -45487,6 +45412,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45487
45412
  });
45488
45413
  return users;
45489
45414
  });
45415
+ const canConfirm = computed(() => selectedUsers.value.length > 0);
45490
45416
  const treeProps = {
45491
45417
  children: "children",
45492
45418
  label: "name",
@@ -45543,25 +45469,26 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45543
45469
  emit("update:visible", false);
45544
45470
  };
45545
45471
  async function getAddressBook() {
45472
+ var _a25;
45473
+ loading.value = true;
45546
45474
  try {
45547
- getMemberTree(props.taskId).then((res) => {
45548
- if (res.code == 200) {
45549
- treeData.value = res.data.contacts;
45550
- originalTreeData.value = JSON.parse(JSON.stringify(treeData.value));
45551
- nextTick(() => {
45552
- var _a25;
45553
- (_a25 = treeRef.value) == null ? void 0 : _a25.expandAll();
45554
- });
45555
- } else {
45556
- }
45557
- }).catch(() => {
45558
- treeData.value = [];
45559
- originalTreeData.value = [];
45560
- }).finally(() => {
45561
- });
45562
- } catch (err) {
45475
+ const res = await getMemberTree(props.taskId);
45476
+ if ((res == null ? void 0 : res.code) == 200) {
45477
+ treeData.value = ((_a25 = res.data) == null ? void 0 : _a25.contacts) ?? [];
45478
+ originalTreeData.value = JSON.parse(JSON.stringify(treeData.value));
45479
+ nextTick(() => {
45480
+ var _a26;
45481
+ (_a26 = treeRef.value) == null ? void 0 : _a26.expandAll();
45482
+ });
45483
+ return;
45484
+ }
45563
45485
  treeData.value = [];
45564
45486
  originalTreeData.value = [];
45487
+ } catch {
45488
+ treeData.value = [];
45489
+ originalTreeData.value = [];
45490
+ } finally {
45491
+ loading.value = false;
45565
45492
  }
45566
45493
  }
45567
45494
  watch(
@@ -45584,6 +45511,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45584
45511
  emitter.off("refreshUserList", getAddressBook);
45585
45512
  });
45586
45513
  return (_ctx, _cache) => {
45514
+ const _directive_loding = resolveDirective("loding");
45587
45515
  return isVisible.value ? (openBlock(), createElementBlock("div", {
45588
45516
  key: 0,
45589
45517
  class: normalizeClass(["js-invite-modal", themeClass.value])
@@ -45605,14 +45533,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45605
45533
  size: 15
45606
45534
  })
45607
45535
  ]),
45608
- createElementVNode("div", _hoisted_3$b, [
45609
- treeData.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_4$9, [
45536
+ withDirectives((openBlock(), createElementBlock("div", _hoisted_3$b, [
45537
+ !loading.value && treeData.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_4$9, [
45610
45538
  createVNode(SvgIcon, {
45611
45539
  name: "NoUserIcon",
45612
- size: 120
45540
+ size: 100
45613
45541
  }),
45614
- _cache[1] || (_cache[1] = createTextVNode(" 暂无用户 ", -1))
45615
- ])) : (openBlock(), createBlock(Tree, {
45542
+ _cache[2] || (_cache[2] = createTextVNode(" 暂无用户 ", -1))
45543
+ ])) : !loading.value ? (openBlock(), createBlock(Tree, {
45616
45544
  key: 1,
45617
45545
  ref_key: "treeRef",
45618
45546
  ref: treeRef,
@@ -45620,7 +45548,9 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45620
45548
  props: treeProps,
45621
45549
  onNodeClick: handleClick,
45622
45550
  onCheckChange: handleCheck
45623
- }, null, 8, ["data"]))
45551
+ }, null, 8, ["data"])) : createCommentVNode("", true)
45552
+ ])), [
45553
+ [_directive_loding, loading.value]
45624
45554
  ])
45625
45555
  ]),
45626
45556
  createElementVNode("div", _hoisted_5$8, [
@@ -45655,11 +45585,11 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45655
45585
  }), 128))
45656
45586
  ])
45657
45587
  ]),
45658
- createElementVNode("div", { class: "js-modal-right-footer" }, [
45588
+ createElementVNode("div", _hoisted_14$4, [
45659
45589
  createElementVNode("div", {
45660
- class: "button button-primary",
45661
- onClick: handleConfirm
45662
- }, "确定"),
45590
+ class: normalizeClass(["button button-primary", { disabled: !canConfirm.value }]),
45591
+ onClick: _cache[1] || (_cache[1] = ($event) => canConfirm.value && handleConfirm())
45592
+ }, " 确定 ", 2),
45663
45593
  createElementVNode("div", {
45664
45594
  class: "button button-secondary",
45665
45595
  onClick: handleClose
@@ -45670,7 +45600,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
45670
45600
  };
45671
45601
  }
45672
45602
  });
45673
- const Invite = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-deceb72d"]]);
45603
+ const Invite = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-005d905b"]]);
45674
45604
  const _hoisted_1$a = { class: "js-meeting-invite-modal" };
45675
45605
  const _hoisted_2$a = { class: "js-meeting-invite-modal-header" };
45676
45606
  const _hoisted_3$a = { class: "js-meeting-invite-modal-title" };
@@ -46943,7 +46873,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
46943
46873
  };
46944
46874
  }
46945
46875
  });
46946
- const JSSOSSetting = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-e743e4f6"]]);
46876
+ const JSSOSSetting = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-cb010b2e"]]);
46947
46877
  const _hoisted_1$6 = { class: "dialog" };
46948
46878
  const _hoisted_2$6 = { class: "modal-header" };
46949
46879
  const _hoisted_3$6 = { class: "content" };
@@ -47670,7 +47600,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47670
47600
  const selectedSpeakerId = computed({
47671
47601
  get: () => deviceInfo.speakerId,
47672
47602
  set: async (value) => {
47673
- setPreferredSpeakerDevice(value);
47603
+ await switchSpeaker(value);
47674
47604
  if (speakerTesting.value) {
47675
47605
  await restartSpeakerTest();
47676
47606
  }
@@ -47680,7 +47610,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47680
47610
  get: () => deviceInfo.microPhoneId,
47681
47611
  set: async (value) => {
47682
47612
  await switchMicrophone(value);
47683
- setPreferredMicrophoneDevice(value);
47684
47613
  if (microphoneTesting.value) {
47685
47614
  await restartMicrophoneTest();
47686
47615
  }
@@ -47690,7 +47619,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
47690
47619
  get: () => deviceInfo.cameraId,
47691
47620
  set: async (value) => {
47692
47621
  await switchCamera(value);
47693
- setPreferredCameraDevice(value);
47694
47622
  if (visible.value && activeTab.value === "camera") {
47695
47623
  await startCameraPreview();
47696
47624
  }
@@ -48131,7 +48059,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48131
48059
  };
48132
48060
  }
48133
48061
  });
48134
- const JSSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-b420aee0"]]);
48062
+ const JSSettings = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-6a4053ae"]]);
48135
48063
  function scheduleJoinRoom() {
48136
48064
  setTimeout(() => {
48137
48065
  try {