call-live-sdk1 0.0.3 → 0.0.4

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.
@@ -25612,23 +25612,23 @@ var GlobalErrorType = /* @__PURE__ */ ((GlobalErrorType2) => {
25612
25612
  })(GlobalErrorType || {});
25613
25613
  const envConfig = {
25614
25614
  callConfig: {
25615
- el: envConfig$1.env === "production" ? "" : "root",
25616
- sign: envConfig$1.env === "production" ? "" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlZGl0aW9uX2lkIjo0NywiZXhwIjoxNzY2OTg2NDY2LCJpYXQiOjE3NjYzODE2NjYsIm5iZiI6MTc2NjM4MTY2Niwic3ViX3VzZXJpZCI6MCwidXNlcmlkIjoiMzg3MzU5ODkifQ.PoX2zUuJycp_Qt8obbKNO1m6GcAWBYklaeIi2IgxnEI",
25617
- liveId: envConfig$1.env === "production" ? null : 53065,
25618
- title: envConfig$1.env === "production" ? "" : "test",
25615
+ el: envConfig$1.env === "dev" ? "root" : "",
25616
+ sign: envConfig$1.env === "dev" ? "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlZGl0aW9uX2lkIjo0NywiZXhwIjoxNzY3NTgyODExLCJpYXQiOjE3NjY5NzgwMTEsIm5iZiI6MTc2Njk3ODAxMSwic3ViX3VzZXJpZCI6MCwidXNlcmlkIjoiMzg3MzU5ODkifQ.lB9hFdxAJUGt4eg9WugAlkyIWhPayqcOI15x1DToQFo" : "",
25617
+ liveId: envConfig$1.env === "dev" ? 60974 : null,
25618
+ title: envConfig$1.env === "dev" ? "test" : "菲耀直播",
25619
25619
  components: {
25620
25620
  chat: { enabled: true },
25621
25621
  team: { enabled: true },
25622
25622
  call: { enabled: true, inviteLink: "" }
25623
25623
  },
25624
- agentId: envConfig$1.env === "production" ? null : 38735989,
25624
+ agentId: envConfig$1.env === "dev" ? 38735989 : null,
25625
25625
  apiDomain: envConfig$1.liveProxyUrl
25626
25626
  },
25627
25627
  guestConfig: {
25628
25628
  el: "",
25629
- sign: envConfig$1.env === "production" ? "" : "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlZGl0aW9uX2lkIjo0NywiZXhwIjoxNzY2OTg2NDY2LCJpYXQiOjE3NjYzODE2NjYsIm5iZiI6MTc2NjM4MTY2Niwic3ViX3VzZXJpZCI6MCwidXNlcmlkIjoiMzg3MzU5ODkifQ.PoX2zUuJycp_Qt8obbKNO1m6GcAWBYklaeIi2IgxnEI",
25630
- liveId: envConfig$1.env === "production" ? null : 53065,
25631
- agentId: envConfig$1.env === "production" ? null : 38735989,
25629
+ sign: envConfig$1.env === "dev" ? "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlZGl0aW9uX2lkIjo0NywiZXhwIjoxNzY2OTg2NDY2LCJpYXQiOjE3NjYzODE2NjYsIm5iZiI6MTc2NjM4MTY2Niwic3ViX3VzZXJpZCI6MCwidXNlcmlkIjoiMzg3MzU5ODkifQ.PoX2zUuJycp_Qt8obbKNO1m6GcAWBYklaeIi2IgxnEI" : "",
25630
+ liveId: envConfig$1.env === "dev" ? null : 60974,
25631
+ agentId: envConfig$1.env === "dev" ? null : 38735989,
25632
25632
  apiDomain: envConfig$1.liveProxyUrl
25633
25633
  },
25634
25634
  styleConfig: {
@@ -82401,6 +82401,259 @@ const useGuestStore = create$c()((set3, get4) => ({
82401
82401
  set3({ status });
82402
82402
  }
82403
82403
  }));
82404
+ const calculateAspectRatio = (area) => {
82405
+ const targetAspectRatio = 16 / 9;
82406
+ const currentAspectRatio = area.width / area.height;
82407
+ let drawWidth = area.width;
82408
+ let drawHeight = area.height;
82409
+ let drawX = area.x;
82410
+ let drawY = area.y;
82411
+ if (currentAspectRatio > targetAspectRatio) {
82412
+ drawWidth = area.height * targetAspectRatio;
82413
+ drawX = area.x + (area.width - drawWidth) / 2;
82414
+ } else {
82415
+ drawHeight = area.width / targetAspectRatio;
82416
+ drawY = area.y + (area.height - drawHeight) / 2;
82417
+ }
82418
+ return { drawX, drawY, drawWidth, drawHeight };
82419
+ };
82420
+ const prepareOffscreenCanvas = (targetCanvas, get4, set3) => {
82421
+ let offscreenCanvas = get4().offscreenCanvasRef;
82422
+ let offscreenContext = get4().offscreenContextRef;
82423
+ if (!offscreenCanvas || offscreenCanvas.width !== targetCanvas.width || offscreenCanvas.height !== targetCanvas.height) {
82424
+ offscreenCanvas = document.createElement("canvas");
82425
+ offscreenCanvas.width = targetCanvas.width;
82426
+ offscreenCanvas.height = targetCanvas.height;
82427
+ offscreenContext = offscreenCanvas.getContext("2d");
82428
+ set3({
82429
+ offscreenCanvasRef: offscreenCanvas,
82430
+ offscreenContextRef: offscreenContext
82431
+ });
82432
+ }
82433
+ return offscreenCanvas;
82434
+ };
82435
+ const renderGridLayout = (ctx2, canvas, layout, get4) => {
82436
+ if (layout.callAreas && layout.callAreas.length > 0) {
82437
+ layout.callAreas.forEach((area) => {
82438
+ const { drawX, drawY, drawWidth, drawHeight } = calculateAspectRatio(area);
82439
+ ctx2.fillStyle = "rgba(26, 26, 26, 0.8)";
82440
+ ctx2.fillRect(drawX, drawY, drawWidth, drawHeight);
82441
+ ctx2.strokeStyle = "rgba(51, 51, 51, 0.6)";
82442
+ ctx2.lineWidth = 2;
82443
+ ctx2.strokeRect(drawX, drawY, drawWidth, drawHeight);
82444
+ if (!area.isVideoEnabled && area.domId.includes("screen")) {
82445
+ get4().renderEmptyUserArea(ctx2, area, drawX, drawY, drawWidth, drawHeight);
82446
+ } else {
82447
+ const container = document.getElementById(area.domId);
82448
+ if (container) {
82449
+ const videoElement = container.querySelector("video");
82450
+ if (videoElement) {
82451
+ get4().drawUserVideoContent(
82452
+ ctx2,
82453
+ videoElement,
82454
+ area,
82455
+ drawX,
82456
+ drawY,
82457
+ drawWidth,
82458
+ drawHeight
82459
+ );
82460
+ }
82461
+ }
82462
+ get4().drawUserInfo(ctx2, area, drawX, drawY, drawWidth, drawHeight);
82463
+ get4().drawStatusIndicators(ctx2, area, drawX, drawY, drawWidth);
82464
+ }
82465
+ });
82466
+ } else {
82467
+ ctx2.fillStyle = "rgba(0, 0, 0, 0.3)";
82468
+ ctx2.fillRect(0, 0, canvas.width, canvas.height);
82469
+ ctx2.fillStyle = "#ffffff";
82470
+ ctx2.font = "24px Arial";
82471
+ ctx2.textAlign = "center";
82472
+ ctx2.textBaseline = "middle";
82473
+ ctx2.fillText("暂无连麦用户", canvas.width / 2, canvas.height / 2);
82474
+ }
82475
+ };
82476
+ const renderMainPlusListLayout = (ctx2, canvas, originalCanvas, layout, callConfig, callUsers, get4) => {
82477
+ if (layout.mainArea) {
82478
+ const mainCanvasId = get4().mainCanvasId;
82479
+ const shouldRenderTargetVideo = mainCanvasId && mainCanvasId !== callConfig.drawing_board_id;
82480
+ if (shouldRenderTargetVideo) {
82481
+ const targetUser = callUsers.find((user) => {
82482
+ return user.videoList && user.videoList.includes(mainCanvasId);
82483
+ });
82484
+ if (targetUser) {
82485
+ if (!targetUser.isVideoEnabled && mainCanvasId.includes("screen")) {
82486
+ get4().renderEmptyUserArea(
82487
+ ctx2,
82488
+ targetUser,
82489
+ layout.mainArea.x,
82490
+ layout.mainArea.y,
82491
+ layout.mainArea.width,
82492
+ layout.mainArea.height
82493
+ );
82494
+ } else {
82495
+ try {
82496
+ const videoWrap = document.getElementById(mainCanvasId);
82497
+ const videoElement = videoWrap == null ? void 0 : videoWrap.querySelector("video");
82498
+ if (videoElement && videoElement.tagName === "VIDEO") {
82499
+ const videoWidth = videoElement.videoWidth;
82500
+ const videoHeight = videoElement.videoHeight;
82501
+ if (videoWidth > 0 && videoHeight > 0) {
82502
+ const isUserMobile = targetUser.device === "mobile";
82503
+ const mainAreaWidth = layout.mainArea.width;
82504
+ const mainAreaHeight = layout.mainArea.height;
82505
+ const scaleX = mainAreaWidth / videoWidth;
82506
+ const scaleY = mainAreaHeight / videoHeight;
82507
+ const scale2 = Math.min(scaleX, scaleY);
82508
+ const drawWidth = videoWidth * scale2;
82509
+ const drawHeight = videoHeight * scale2;
82510
+ const drawX = layout.mainArea.x + (mainAreaWidth - drawWidth) / 2;
82511
+ const drawY = layout.mainArea.y + (mainAreaHeight - drawHeight) / 2;
82512
+ if (isUserMobile) {
82513
+ ctx2.fillStyle = "#000000";
82514
+ ctx2.fillRect(layout.mainArea.x, layout.mainArea.y, mainAreaWidth, mainAreaHeight);
82515
+ }
82516
+ ctx2.drawImage(videoElement, drawX, drawY, drawWidth, drawHeight);
82517
+ } else {
82518
+ get4().renderEmptyUserArea(
82519
+ ctx2,
82520
+ targetUser,
82521
+ layout.mainArea.x,
82522
+ layout.mainArea.y,
82523
+ layout.mainArea.width,
82524
+ layout.mainArea.height
82525
+ );
82526
+ }
82527
+ } else {
82528
+ get4().renderEmptyUserArea(
82529
+ ctx2,
82530
+ targetUser,
82531
+ layout.mainArea.x,
82532
+ layout.mainArea.y,
82533
+ layout.mainArea.width,
82534
+ layout.mainArea.height
82535
+ );
82536
+ }
82537
+ } catch (error2) {
82538
+ console.error("主画布区域-绘制外部视频元素失败:", error2);
82539
+ get4().renderEmptyUserArea(
82540
+ ctx2,
82541
+ targetUser,
82542
+ layout.mainArea.x,
82543
+ layout.mainArea.y,
82544
+ layout.mainArea.width,
82545
+ layout.mainArea.height
82546
+ );
82547
+ }
82548
+ }
82549
+ } else {
82550
+ ctx2.fillStyle = "rgba(31, 41, 55, 0.7)";
82551
+ ctx2.fillRect(
82552
+ layout.mainArea.x,
82553
+ layout.mainArea.y,
82554
+ layout.mainArea.width,
82555
+ layout.mainArea.height
82556
+ );
82557
+ }
82558
+ } else {
82559
+ ctx2.fillStyle = "rgb(0, 0, 0)";
82560
+ ctx2.fillRect(
82561
+ layout.mainArea.x,
82562
+ layout.mainArea.y,
82563
+ layout.mainArea.width,
82564
+ layout.mainArea.height
82565
+ );
82566
+ ctx2.drawImage(
82567
+ originalCanvas,
82568
+ 0,
82569
+ 0,
82570
+ originalCanvas.width,
82571
+ originalCanvas.height,
82572
+ layout.mainArea.x,
82573
+ layout.mainArea.y,
82574
+ layout.mainArea.width,
82575
+ layout.mainArea.height
82576
+ );
82577
+ }
82578
+ }
82579
+ };
82580
+ const renderUserVideoAreas = (context, callAreas, get4) => {
82581
+ callAreas.forEach((area) => {
82582
+ var _a2;
82583
+ const { drawX, drawY, drawWidth, drawHeight } = calculateAspectRatio(area);
82584
+ context.save();
82585
+ context.fillStyle = "rgba(17, 24, 39, 0.8)";
82586
+ context.fillRect(drawX, drawY, drawWidth, drawHeight);
82587
+ const container = document.getElementById(area.domId);
82588
+ if (!container || !area.isVideoEnabled && !((_a2 = area.domId) == null ? void 0 : _a2.includes("screen"))) {
82589
+ get4().renderEmptyUserArea(context, area, drawX, drawY, drawWidth, drawHeight);
82590
+ context.restore();
82591
+ return;
82592
+ }
82593
+ const videoElement = container.querySelector("video");
82594
+ get4().drawUserVideoContent(context, videoElement, area, drawX, drawY, drawWidth, drawHeight);
82595
+ get4().drawUserInfo(context, area, drawX, drawY, drawWidth, drawHeight);
82596
+ get4().drawStatusIndicators(context, area, drawX, drawY, drawWidth);
82597
+ context.restore();
82598
+ });
82599
+ };
82600
+ const drawBackgroundImage = (ctx2, canvas, backgroundImgUrl, get4, set3) => {
82601
+ const { backgroundImageRef, lastBackgroundImgUrlRef } = get4();
82602
+ if (!backgroundImageRef || lastBackgroundImgUrlRef !== backgroundImgUrl) {
82603
+ const img = new Image();
82604
+ img.src = backgroundImgUrl;
82605
+ img.crossOrigin = "anonymous";
82606
+ set3({
82607
+ backgroundImageRef: img,
82608
+ lastBackgroundImgUrlRef: backgroundImgUrl
82609
+ });
82610
+ img.onload = () => {
82611
+ get4().renderCompositeFrameSmooth();
82612
+ };
82613
+ img.onerror = () => {
82614
+ console.error("[CallStore] 背景图加载失败:", backgroundImgUrl);
82615
+ ctx2.fillStyle = "#000000";
82616
+ ctx2.fillRect(0, 0, canvas.width, canvas.height);
82617
+ };
82618
+ } else if (backgroundImageRef.complete && backgroundImageRef.naturalWidth > 0) {
82619
+ try {
82620
+ ctx2.globalAlpha = 0.9;
82621
+ const imgAspectRatio = backgroundImageRef.width / backgroundImageRef.height;
82622
+ const canvasAspectRatio = canvas.width / canvas.height;
82623
+ let drawWidth, drawHeight, drawX, drawY;
82624
+ if (imgAspectRatio > canvasAspectRatio) {
82625
+ drawHeight = canvas.height;
82626
+ drawWidth = canvas.height * imgAspectRatio;
82627
+ drawX = (canvas.width - drawWidth) / 2;
82628
+ drawY = 0;
82629
+ } else {
82630
+ drawWidth = canvas.width;
82631
+ drawHeight = canvas.width / imgAspectRatio;
82632
+ drawX = 0;
82633
+ drawY = (canvas.height - drawHeight) / 2;
82634
+ }
82635
+ ctx2.drawImage(
82636
+ backgroundImageRef,
82637
+ 0,
82638
+ 0,
82639
+ backgroundImageRef.width,
82640
+ backgroundImageRef.height,
82641
+ drawX,
82642
+ drawY,
82643
+ drawWidth,
82644
+ drawHeight
82645
+ );
82646
+ ctx2.globalAlpha = 1;
82647
+ } catch (error2) {
82648
+ console.error("[CallStore] 背景图绘制失败:", error2);
82649
+ ctx2.fillStyle = "rgba(0, 0, 0, 0.8)";
82650
+ ctx2.fillRect(0, 0, canvas.width, canvas.height);
82651
+ }
82652
+ } else {
82653
+ ctx2.fillStyle = "rgba(0, 0, 0, 0.8)";
82654
+ ctx2.fillRect(0, 0, canvas.width, canvas.height);
82655
+ }
82656
+ };
82404
82657
  var VideoType = /* @__PURE__ */ ((VideoType2) => {
82405
82658
  VideoType2["CAMERA"] = "video";
82406
82659
  VideoType2["SCREEN"] = "screen";
@@ -83265,281 +83518,14 @@ const useCallStore = create$c()(
83265
83518
  const originalCanvas = fabricInstance == null ? void 0 : fabricInstance.lowerCanvasEl;
83266
83519
  if (!canvas || !context || !originalCanvas)
83267
83520
  return;
83268
- const prepareOffscreenCanvas = (targetCanvas) => {
83269
- let offscreenCanvas2 = get4().offscreenCanvasRef;
83270
- let offscreenContext2 = get4().offscreenContextRef;
83271
- if (!offscreenCanvas2 || offscreenCanvas2.width !== targetCanvas.width || offscreenCanvas2.height !== targetCanvas.height) {
83272
- offscreenCanvas2 = document.createElement("canvas");
83273
- offscreenCanvas2.width = targetCanvas.width;
83274
- offscreenCanvas2.height = targetCanvas.height;
83275
- offscreenContext2 = offscreenCanvas2.getContext("2d");
83276
- set3({
83277
- offscreenCanvasRef: offscreenCanvas2,
83278
- offscreenContextRef: offscreenContext2
83279
- });
83280
- }
83281
- return offscreenCanvas2;
83282
- };
83283
- const calculateAspectRatio = (area) => {
83284
- const targetAspectRatio = 16 / 9;
83285
- const currentAspectRatio = area.width / area.height;
83286
- let drawWidth = area.width;
83287
- let drawHeight = area.height;
83288
- let drawX = area.x;
83289
- let drawY = area.y;
83290
- if (currentAspectRatio > targetAspectRatio) {
83291
- drawWidth = area.height * targetAspectRatio;
83292
- drawX = area.x + (area.width - drawWidth) / 2;
83293
- } else {
83294
- drawHeight = area.width / targetAspectRatio;
83295
- drawY = area.y + (area.height - drawHeight) / 2;
83296
- }
83297
- return { drawX, drawY, drawWidth, drawHeight };
83298
- };
83299
- const renderGridLayout = (ctx2, canvas2, layout) => {
83300
- if (layout.callAreas && layout.callAreas.length > 0) {
83301
- layout.callAreas.forEach((area) => {
83302
- const { drawX, drawY, drawWidth, drawHeight } = calculateAspectRatio(area);
83303
- ctx2.fillStyle = "rgba(26, 26, 26, 0.8)";
83304
- ctx2.fillRect(drawX, drawY, drawWidth, drawHeight);
83305
- ctx2.strokeStyle = "rgba(51, 51, 51, 0.6)";
83306
- ctx2.lineWidth = 2;
83307
- ctx2.strokeRect(drawX, drawY, drawWidth, drawHeight);
83308
- if (!area.isVideoEnabled && area.domId.includes("screen")) {
83309
- get4().renderEmptyUserArea(ctx2, area, drawX, drawY, drawWidth, drawHeight);
83310
- } else {
83311
- const container = document.getElementById(area.domId);
83312
- if (container) {
83313
- const videoElement = container.querySelector("video");
83314
- if (videoElement) {
83315
- get4().drawUserVideoContent(
83316
- ctx2,
83317
- videoElement,
83318
- area,
83319
- drawX,
83320
- drawY,
83321
- drawWidth,
83322
- drawHeight
83323
- );
83324
- }
83325
- }
83326
- get4().drawUserInfo(ctx2, area, drawX, drawY, drawWidth, drawHeight);
83327
- get4().drawStatusIndicators(ctx2, area, drawX, drawY, drawWidth);
83328
- }
83329
- });
83330
- } else {
83331
- ctx2.fillStyle = "rgba(0, 0, 0, 0.3)";
83332
- ctx2.fillRect(0, 0, canvas2.width, canvas2.height);
83333
- ctx2.fillStyle = "#ffffff";
83334
- ctx2.font = "24px Arial";
83335
- ctx2.textAlign = "center";
83336
- ctx2.textBaseline = "middle";
83337
- ctx2.fillText("暂无连麦用户", canvas2.width / 2, canvas2.height / 2);
83338
- }
83339
- };
83340
- const renderMainPlusListLayout = (ctx2, canvas2, originalCanvas2, layout) => {
83341
- if (layout.mainArea) {
83342
- const mainCanvasId = get4().mainCanvasId;
83343
- const shouldRenderTargetVideo = mainCanvasId && mainCanvasId !== callConfig.drawing_board_id;
83344
- if (shouldRenderTargetVideo) {
83345
- const targetUser = callUsers.find((user) => {
83346
- return user.videoList && user.videoList.includes(mainCanvasId);
83347
- });
83348
- if (targetUser) {
83349
- if (!targetUser.isVideoEnabled && mainCanvasId.includes("screen")) {
83350
- get4().renderEmptyUserArea(
83351
- ctx2,
83352
- targetUser,
83353
- layout.mainArea.x,
83354
- layout.mainArea.y,
83355
- layout.mainArea.width,
83356
- layout.mainArea.height
83357
- );
83358
- } else {
83359
- try {
83360
- const videoWrap = document.getElementById(mainCanvasId);
83361
- const videoElement = videoWrap == null ? void 0 : videoWrap.querySelector("video");
83362
- if (videoElement && videoElement.tagName === "VIDEO") {
83363
- const videoWidth = videoElement.videoWidth;
83364
- const videoHeight = videoElement.videoHeight;
83365
- if (videoWidth > 0 && videoHeight > 0) {
83366
- const isUserMobile = targetUser.device === "mobile";
83367
- const mainAreaWidth = layout.mainArea.width;
83368
- const mainAreaHeight = layout.mainArea.height;
83369
- const scaleX = mainAreaWidth / videoWidth;
83370
- const scaleY = mainAreaHeight / videoHeight;
83371
- const scale2 = Math.min(scaleX, scaleY);
83372
- const drawWidth = videoWidth * scale2;
83373
- const drawHeight = videoHeight * scale2;
83374
- const drawX = layout.mainArea.x + (mainAreaWidth - drawWidth) / 2;
83375
- const drawY = layout.mainArea.y + (mainAreaHeight - drawHeight) / 2;
83376
- if (isUserMobile) {
83377
- ctx2.fillStyle = "#000000";
83378
- ctx2.fillRect(
83379
- layout.mainArea.x,
83380
- layout.mainArea.y,
83381
- mainAreaWidth,
83382
- mainAreaHeight
83383
- );
83384
- }
83385
- ctx2.drawImage(videoElement, drawX, drawY, drawWidth, drawHeight);
83386
- } else {
83387
- get4().renderEmptyUserArea(
83388
- ctx2,
83389
- targetUser,
83390
- layout.mainArea.x,
83391
- layout.mainArea.y,
83392
- layout.mainArea.width,
83393
- layout.mainArea.height
83394
- );
83395
- }
83396
- } else {
83397
- get4().renderEmptyUserArea(
83398
- ctx2,
83399
- targetUser,
83400
- layout.mainArea.x,
83401
- layout.mainArea.y,
83402
- layout.mainArea.width,
83403
- layout.mainArea.height
83404
- );
83405
- }
83406
- } catch (error2) {
83407
- console.error("主画布区域-绘制外部视频元素失败:", error2);
83408
- get4().renderEmptyUserArea(
83409
- ctx2,
83410
- targetUser,
83411
- layout.mainArea.x,
83412
- layout.mainArea.y,
83413
- layout.mainArea.width,
83414
- layout.mainArea.height
83415
- );
83416
- }
83417
- }
83418
- } else {
83419
- ctx2.fillStyle = "rgba(31, 41, 55, 0.7)";
83420
- ctx2.fillRect(
83421
- layout.mainArea.x,
83422
- layout.mainArea.y,
83423
- layout.mainArea.width,
83424
- layout.mainArea.height
83425
- );
83426
- }
83427
- } else {
83428
- ctx2.fillStyle = "rgb(0, 0, 0)";
83429
- ctx2.fillRect(
83430
- layout.mainArea.x,
83431
- layout.mainArea.y,
83432
- layout.mainArea.width,
83433
- layout.mainArea.height
83434
- );
83435
- ctx2.drawImage(
83436
- originalCanvas2,
83437
- 0,
83438
- 0,
83439
- originalCanvas2.width,
83440
- originalCanvas2.height,
83441
- layout.mainArea.x,
83442
- layout.mainArea.y,
83443
- layout.mainArea.width,
83444
- layout.mainArea.height
83445
- );
83446
- }
83447
- }
83448
- };
83449
- const renderUserVideoAreas = (context2, callAreas) => {
83450
- callAreas.forEach((area) => {
83451
- var _a2;
83452
- const { drawX, drawY, drawWidth, drawHeight } = calculateAspectRatio(area);
83453
- context2.save();
83454
- context2.fillStyle = "rgba(17, 24, 39, 0.8)";
83455
- context2.fillRect(drawX, drawY, drawWidth, drawHeight);
83456
- const container = document.getElementById(area.domId);
83457
- if (!container || !area.isVideoEnabled && !((_a2 = area.domId) == null ? void 0 : _a2.includes("screen"))) {
83458
- get4().renderEmptyUserArea(context2, area, drawX, drawY, drawWidth, drawHeight);
83459
- context2.restore();
83460
- return;
83461
- }
83462
- const videoElement = container.querySelector("video");
83463
- get4().drawUserVideoContent(
83464
- context2,
83465
- videoElement,
83466
- area,
83467
- drawX,
83468
- drawY,
83469
- drawWidth,
83470
- drawHeight
83471
- );
83472
- get4().drawUserInfo(context2, area, drawX, drawY, drawWidth, drawHeight);
83473
- get4().drawStatusIndicators(context2, area, drawX, drawY, drawWidth);
83474
- context2.restore();
83475
- });
83476
- };
83477
- const drawBackgroundImage = (ctx2, canvas2, backgroundImgUrl2) => {
83478
- const { backgroundImageRef, lastBackgroundImgUrlRef } = get4();
83479
- if (!backgroundImageRef || lastBackgroundImgUrlRef !== backgroundImgUrl2) {
83480
- const img = new Image();
83481
- img.src = backgroundImgUrl2;
83482
- img.crossOrigin = "anonymous";
83483
- set3({
83484
- backgroundImageRef: img,
83485
- lastBackgroundImgUrlRef: backgroundImgUrl2
83486
- });
83487
- img.onload = () => {
83488
- const { renderCompositeFrameSmooth } = get4();
83489
- renderCompositeFrameSmooth();
83490
- };
83491
- img.onerror = () => {
83492
- console.error("[CallStore] 背景图加载失败:", backgroundImgUrl2);
83493
- ctx2.fillStyle = "#000000";
83494
- ctx2.fillRect(0, 0, canvas2.width, canvas2.height);
83495
- };
83496
- } else if (backgroundImageRef.complete && backgroundImageRef.naturalWidth > 0) {
83497
- try {
83498
- ctx2.globalAlpha = 0.9;
83499
- const imgAspectRatio = backgroundImageRef.width / backgroundImageRef.height;
83500
- const canvasAspectRatio = canvas2.width / canvas2.height;
83501
- let drawWidth, drawHeight, drawX, drawY;
83502
- if (imgAspectRatio > canvasAspectRatio) {
83503
- drawHeight = canvas2.height;
83504
- drawWidth = canvas2.height * imgAspectRatio;
83505
- drawX = (canvas2.width - drawWidth) / 2;
83506
- drawY = 0;
83507
- } else {
83508
- drawWidth = canvas2.width;
83509
- drawHeight = canvas2.width / imgAspectRatio;
83510
- drawX = 0;
83511
- drawY = (canvas2.height - drawHeight) / 2;
83512
- }
83513
- ctx2.drawImage(
83514
- backgroundImageRef,
83515
- 0,
83516
- 0,
83517
- backgroundImageRef.width,
83518
- backgroundImageRef.height,
83519
- drawX,
83520
- drawY,
83521
- drawWidth,
83522
- drawHeight
83523
- );
83524
- ctx2.globalAlpha = 1;
83525
- } catch (error2) {
83526
- console.error("[CallStore] 背景图绘制失败:", error2);
83527
- ctx2.fillStyle = "rgba(0, 0, 0, 0.8)";
83528
- ctx2.fillRect(0, 0, canvas2.width, canvas2.height);
83529
- }
83530
- } else {
83531
- ctx2.fillStyle = "rgba(0, 0, 0, 0.8)";
83532
- ctx2.fillRect(0, 0, canvas2.width, canvas2.height);
83533
- }
83534
- };
83535
- const offscreenCanvas = prepareOffscreenCanvas(canvas);
83521
+ const offscreenCanvas = prepareOffscreenCanvas(canvas, get4, set3);
83536
83522
  const offscreenContext = offscreenCanvas.getContext("2d");
83537
83523
  if (!offscreenContext)
83538
83524
  return;
83539
83525
  offscreenContext.clearRect(0, 0, offscreenCanvas.width, offscreenCanvas.height);
83540
83526
  const backgroundImgUrl = callConfig.backgroundImg;
83541
83527
  if (callConfig.isCall && backgroundImgUrl && backgroundImgUrl.trim() !== "") {
83542
- drawBackgroundImage(offscreenContext, offscreenCanvas, backgroundImgUrl);
83528
+ drawBackgroundImage(offscreenContext, offscreenCanvas, backgroundImgUrl, get4, set3);
83543
83529
  } else {
83544
83530
  offscreenContext.fillStyle = "#000000";
83545
83531
  offscreenContext.fillRect(0, 0, offscreenCanvas.width, offscreenCanvas.height);
@@ -83548,14 +83534,22 @@ const useCallStore = create$c()(
83548
83534
  const layout = calculateLayout();
83549
83535
  switch (layoutMode) {
83550
83536
  case "grid":
83551
- renderGridLayout(offscreenContext, canvas, layout);
83537
+ renderGridLayout(offscreenContext, canvas, layout, get4);
83552
83538
  break;
83553
83539
  case "main_plus_list":
83554
- renderMainPlusListLayout(offscreenContext, canvas, originalCanvas, layout);
83540
+ renderMainPlusListLayout(
83541
+ offscreenContext,
83542
+ canvas,
83543
+ originalCanvas,
83544
+ layout,
83545
+ callConfig,
83546
+ callUsers,
83547
+ get4
83548
+ );
83555
83549
  break;
83556
83550
  }
83557
83551
  if (layout.callAreas.length) {
83558
- renderUserVideoAreas(offscreenContext, layout.callAreas);
83552
+ renderUserVideoAreas(offscreenContext, layout.callAreas, get4);
83559
83553
  }
83560
83554
  } else {
83561
83555
  const mainArea = {
@@ -83754,6 +83748,7 @@ const useCallStore = create$c()(
83754
83748
  }
83755
83749
  return result;
83756
83750
  }).filter(Boolean).map((track) => new MediaStream([track]));
83751
+ console.log("连麦音频混流", b2);
83757
83752
  set3({ callAudioStreamsRef: b2 });
83758
83753
  },
83759
83754
  handleRemoteUserPublishScreen: async (userId, isPublishing) => {
@@ -85385,9 +85380,9 @@ function useLiveInfo() {
85385
85380
  if (res.success === false) {
85386
85381
  staticMethods.error(res.errorMessage);
85387
85382
  requestResult.cancel();
85388
- return res;
85383
+ return;
85389
85384
  }
85390
- return res;
85385
+ return res.data;
85391
85386
  }).catch((error22) => {
85392
85387
  console.error("直播信息请求失败,取消轮训:", error22);
85393
85388
  requestResult.cancel();
@@ -85584,6 +85579,7 @@ const Head = ({
85584
85579
  const {
85585
85580
  livePushCode
85586
85581
  } = useLivePushCodeStore();
85582
+ const title = useSdkStore((state) => state.callConfig.title);
85587
85583
  const {
85588
85584
  data: liveInfoData,
85589
85585
  run: runLiveInfo
@@ -86044,10 +86040,10 @@ const Head = ({
86044
86040
  }
86045
86041
  }, [data2 == null ? void 0 : data2.status]);
86046
86042
  reactExports.useEffect(() => {
86047
- if ((callConfig == null ? void 0 : callConfig.rule) === "main" && !isLive && (data2 == null ? void 0 : data2.is_pushing) !== void 0 && localPushingStatus !== (data2 == null ? void 0 : data2.is_pushing)) {
86043
+ if (!isLive) {
86048
86044
  checkPushingStatus();
86049
86045
  }
86050
- }, [data2 == null ? void 0 : data2.is_pushing, localPushingStatus, checkPushingStatus, isLive, callConfig == null ? void 0 : callConfig.rule]);
86046
+ }, [data2 == null ? void 0 : data2.is_pushing, localPushingStatus, checkPushingStatus, isLive]);
86051
86047
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
86052
86048
  className: "min-h-56px bg-#222933 px-26px flex items-center justify-between",
86053
86049
  children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
@@ -86059,7 +86055,7 @@ const Head = ({
86059
86055
  style: {
86060
86056
  lineHeight: 1
86061
86057
  },
86062
- children: (callConfig == null ? void 0 : callConfig.title) || "菲耀直播"
86058
+ children: title
86063
86059
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
86064
86060
  className: "w-1px h-18px bg-#fff mx-4"
86065
86061
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
@@ -196121,7 +196117,7 @@ const CallUserVideo = reactExports.memo(({
196121
196117
  }
196122
196118
  },
196123
196119
  children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
196124
- className: "relative h-full bg-gray-900",
196120
+ className: "relative w-full h-full bg-gray-900",
196125
196121
  style: {
196126
196122
  aspectRatio: "16/9"
196127
196123
  },
@@ -196315,14 +196311,14 @@ const CallGridLayout = ({
196315
196311
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(CallUserVideo, {
196316
196312
  user: callCurrentUser,
196317
196313
  video_id: callCurrentUser.rtc_userid + "screen",
196318
- className: `min-h-0 aspect-video h-full object-cover`
196314
+ className: `min-h-0 aspect-video w-full h-full object-cover`
196319
196315
  }, "local-player-screen")
196320
196316
  }), currentPage === 1 && (callCurrentUser == null ? void 0 : callCurrentUser.rtc_userid) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
196321
196317
  style: videoItemStyle,
196322
196318
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(CallUserVideo, {
196323
196319
  user: callCurrentUser,
196324
196320
  video_id: callCurrentUser.rtc_userid,
196325
- className: `min-h-0 aspect-video h-full object-cover`
196321
+ className: `min-h-0 aspect-video w-full h-full object-cover`
196326
196322
  }, "local-player")
196327
196323
  }), currentPageUsers.map((user) => {
196328
196324
  if (user.rtc_userid === callConfig.rtc_userid && currentPage === 1) {
@@ -196334,14 +196330,14 @@ const CallGridLayout = ({
196334
196330
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(CallUserVideo, {
196335
196331
  user,
196336
196332
  video_id: user.rtc_userid + "screen",
196337
- className: `min-h-0 aspect-video h-full object-cover`
196333
+ className: `min-h-0 aspect-video w-full h-full object-cover`
196338
196334
  }, user.rtc_userid + "screen")
196339
196335
  }), user.rtc_userid && /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
196340
196336
  style: videoItemStyle,
196341
196337
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(CallUserVideo, {
196342
196338
  user,
196343
196339
  video_id: user.rtc_userid,
196344
- className: `min-h-0 aspect-video h-full object-cover`
196340
+ className: `min-h-0 aspect-video w-full h-full object-cover`
196345
196341
  }, user.rtc_userid)
196346
196342
  })]
196347
196343
  }, user.rtc_userid);
@@ -268928,6 +268924,7 @@ const LivePlayer = ({
268928
268924
  console.log("loadCanvasState", newObj);
268929
268925
  setFabricObjects(newObj);
268930
268926
  },
268927
+ getRtmpRef: () => rtmpRef,
268931
268928
  getActiveVideoStreams: () => activeVideoStreamsRef.current,
268932
268929
  getMicrophoneStreams: () => microphoneStreamsRef.current,
268933
268930
  getBackgroundAudioStreams: () => backgroundAudioStreamsRef.current,
@@ -269172,12 +269169,12 @@ const LivePlayer = ({
269172
269169
  })
269173
269170
  }), /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
269174
269171
  id: "video-container",
269175
- className: "absolute overflow-hidden bg-#000 z-[-10]",
269172
+ className: "absolute overflow-hidden bg-#000 w-full z-[-10]",
269176
269173
  style: {
269177
269174
  aspectRatio: 16 / 9
269178
269175
  },
269179
269176
  children: [/* @__PURE__ */ jsxRuntimeExports.jsx("video", {
269180
- className: " h-full object-cover",
269177
+ className: "w-full h-full object-cover",
269181
269178
  ref: videoRef
269182
269179
  }), !(isMainCanvasUser == null ? void 0 : isMainCanvasUser.isVideoEnabled) && /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
269183
269180
  className: "absolute inset-0 bg-gray-800 flex items-center justify-center",
@@ -280242,7 +280239,6 @@ const MediaSettings = () => {
280242
280239
  });
280243
280240
  const [beautyExtension, setBeautyExtension] = reactExports.useState(null);
280244
280241
  const [beautyCompatible, setBeautyCompatible] = reactExports.useState(false);
280245
- console.log("beautyCompatible", beautyCompatible);
280246
280242
  const [beautyInitialized, setBeautyInitialized] = reactExports.useState(false);
280247
280243
  const getDevices = reactExports.useCallback(async () => {
280248
280244
  try {
@@ -292343,13 +292339,16 @@ const RtcJoomRoom = reactExports.memo(({
292343
292339
  }
292344
292340
  }, VideoRenderMode.RENDER_MODE_HIDDEN));
292345
292341
  if (callConfig.rule === "sub" && callConfig.enter_muted) {
292346
- toggleAudio(false);
292342
+ await toggleAudio(false);
292347
292343
  } else {
292348
292344
  updateCallConfig({
292349
292345
  isReady: true
292350
292346
  });
292351
292347
  }
292352
292348
  await ((_d2 = getter().rtc) == null ? void 0 : _d2.publishStream());
292349
+ if (callConfig.rule === "main") {
292350
+ callAudioMixing();
292351
+ }
292353
292352
  } catch (err2) {
292354
292353
  console.error("创建本地流失败" + rtc_userid, "appid:" + appid, "roomid:" + rtc_room_id, "userid:" + rtc_userid, err2);
292355
292354
  }
@@ -292831,9 +292830,6 @@ const CallHome$1 = () => {
292831
292830
  const [canvasSetting, setCanvasSetting] = reactExports.useState("horizontal");
292832
292831
  const rtmpRef = reactExports.useRef(null);
292833
292832
  const audioSourcesRef = reactExports.useRef([]);
292834
- reactExports.useEffect(() => {
292835
- document.title = "菲耀直播";
292836
- }, []);
292837
292833
  reactExports.useEffect(() => {
292838
292834
  const timer = setTimeout(() => {
292839
292835
  if (!(callConfig == null ? void 0 : callConfig.rtc_userid)) {
@@ -292910,7 +292906,6 @@ const {
292910
292906
  } = Typography;
292911
292907
  const WebLiveLogin = () => {
292912
292908
  const [form] = Form2.useForm();
292913
- new URLSearchParams(window.location.search);
292914
292909
  const {
292915
292910
  setStatus,
292916
292911
  setDeviceType
@@ -293234,9 +293229,6 @@ const WebLiveLogin = () => {
293234
293229
  handleLogin.cancel();
293235
293230
  };
293236
293231
  }, [handleLogin]);
293237
- reactExports.useEffect(() => {
293238
- document.title = "菲耀直播";
293239
- }, []);
293240
293232
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
293241
293233
  className: "web-live-login-container",
293242
293234
  children: [/* @__PURE__ */ jsxRuntimeExports.jsxs("div", {
@@ -294901,6 +294893,7 @@ const MobileLive = reactExports.memo(({ className = "" }) => {
294901
294893
  const { setStatus } = useGuestStore((state) => ({
294902
294894
  setStatus: state.setStatus
294903
294895
  }));
294896
+ useSdkStore((state) => state.callConfig.title);
294904
294897
  const [isBackCamera, setIsBackCamera] = reactExports.useState(false);
294905
294898
  const [showDeviceSettings, setShowDeviceSettings] = reactExports.useState(false);
294906
294899
  const [isDeviceSelected, setIsDeviceSelected] = reactExports.useState({
@@ -294990,9 +294983,6 @@ const MobileLive = reactExports.memo(({ className = "" }) => {
294990
294983
  reactExports.useEffect(() => {
294991
294984
  document.body.style.minWidth = "100vw";
294992
294985
  }, [callConfig]);
294993
- reactExports.useEffect(() => {
294994
- document.title = "菲耀直播";
294995
- }, []);
294996
294986
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-screen h-screen bg-black relative overflow-hidden", children: [
294997
294987
  /* @__PURE__ */ jsxRuntimeExports.jsx(RtcJoomRoom, { access: setupVideoPlayer }),
294998
294988
  (callCurrentUser == null ? void 0 : callCurrentUser.waiting_mode_state) !== WaitingModeState.WAITING && /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "w-screen h-screen bg-black relative overflow-hidden", children: [
@@ -296215,10 +296205,10 @@ const CanvasUploadVideo = ({
296215
296205
  className: "text-60px text-#6672fc"
296216
296206
  })
296217
296207
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
296218
- className: "text-14px text-black/50",
296208
+ className: `text-14px`,
296219
296209
  children: "将文件拖到此处,或点击上传"
296220
296210
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
296221
- className: "text-12px text-black/50 mt-2 mb-10",
296211
+ className: `text-12px mt-2 mb-10`,
296222
296212
  children: "支持mp4格式文件,大小不超过5GB"
296223
296213
  })]
296224
296214
  })
@@ -296359,10 +296349,10 @@ const CanvasUploadAudio = ({
296359
296349
  className: "text-60px text-#6672fc"
296360
296350
  })
296361
296351
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
296362
- className: "text-14px text-black/50",
296352
+ className: `text-14px ${theme.useToken().token.colorTextTertiary}`,
296363
296353
  children: "将文件拖到此处,或点击上传"
296364
296354
  }), /* @__PURE__ */ jsxRuntimeExports.jsx("div", {
296365
- className: "text-12px text-black/50 mt-2 mb-10",
296355
+ className: `text-12px mt-2 mb-10 ${theme.useToken().token.colorTextTertiary}`,
296366
296356
  children: "支持mp3格式文件,大小不超过5GB"
296367
296357
  })]
296368
296358
  })
@@ -304394,7 +304384,8 @@ const MetaItem = ({
304394
304384
  const isMutedRef = reactExports.useRef(true);
304395
304385
  const [isMuted, setIsMuted] = reactExports.useState(true);
304396
304386
  const [isLoop, setIsLoop] = reactExports.useState(false);
304397
- const [selectedValue, setSelectedValue] = reactExports.useState("");
304387
+ const fenge = '-":}{_+';
304388
+ const [selectedValue, setSelectedValue] = reactExports.useState(item.objectType === "videoSlot" && item.userId && item.streamIndex ? `${item.userId}${fenge}${item.streamIndex}` : "");
304398
304389
  const [currentTime, setCurrentTime] = reactExports.useState(0);
304399
304390
  const [isPlay, setIsPlay] = reactExports.useState(false);
304400
304391
  const [duration, setDuration] = reactExports.useState(0);
@@ -304583,7 +304574,6 @@ const MetaItem = ({
304583
304574
  const {
304584
304575
  token: token2
304585
304576
  } = useToken2();
304586
- const fenge = '-":}{_+';
304587
304577
  const contentStyle = {
304588
304578
  backgroundColor: token2.colorBgElevated,
304589
304579
  borderRadius: token2.borderRadiusLG,
@@ -304638,6 +304628,9 @@ const MetaItem = ({
304638
304628
  }
304639
304629
  }, [callConfig.isCall]);
304640
304630
  const targetUser = reactExports.useMemo(() => availableStreams.find((user) => user.rtc_userid === (selectedValue == null ? void 0 : selectedValue.split(fenge)[0])), [selectedValue, availableStreams]);
304631
+ console.log("selectedValue?.split(fenge)[0]", selectedValue == null ? void 0 : selectedValue.split(fenge)[0]);
304632
+ console.log("availableStreams", availableStreams);
304633
+ console.log("targetUser", targetUser);
304641
304634
  reactExports.useEffect(() => {
304642
304635
  var _a3;
304643
304636
  if (item.objectType !== "videoSlot" || !livePlayerRef.current)
@@ -304695,11 +304688,6 @@ const MetaItem = ({
304695
304688
  console.error("监听嘉宾视频状态变化时发生错误:", error2);
304696
304689
  }
304697
304690
  }, [targetUser, targetUser == null ? void 0 : targetUser.isVideoEnabled, item.userId, item.id, selectedValue]);
304698
- reactExports.useEffect(() => {
304699
- if (item.objectType === "videoSlot" && item.userId && item.streamIndex) {
304700
- setSelectedValue(`${item.userId}${fenge}${item.streamIndex}`);
304701
- }
304702
- }, [item.objectType, item.id]);
304703
304691
  reactExports.useEffect(() => {
304704
304692
  setItems(item);
304705
304693
  }, [item]);
@@ -305623,7 +305611,6 @@ const CallHome = () => {
305623
305611
  const audioStreamRef = reactExports.useRef(/* @__PURE__ */ new Map());
305624
305612
  const audioSourcesRef = reactExports.useRef([]);
305625
305613
  reactExports.useEffect(() => {
305626
- document.title = "菲耀直播";
305627
305614
  updateCallConfig({
305628
305615
  rule: "main",
305629
305616
  live_id: Number(liveId || "")
@@ -306071,6 +306058,7 @@ const validateParam = (config2, paramName, message2) => {
306071
306058
  };
306072
306059
  class CallLiveSdk {
306073
306060
  constructor(config2) {
306061
+ var _a2;
306074
306062
  this.root = null;
306075
306063
  console.log("<<config>>", config2, useSdkStore.getState());
306076
306064
  if (!config2) {
@@ -306098,7 +306086,7 @@ class CallLiveSdk {
306098
306086
  useSdkStore.setState({
306099
306087
  callConfig: this.config
306100
306088
  });
306101
- saveSign(this.config.sign);
306089
+ saveSign((_a2 = this.config) == null ? void 0 : _a2.sign);
306102
306090
  if (config2.apiDomain) {
306103
306091
  setApiDomain(config2.apiDomain);
306104
306092
  }
@@ -306110,7 +306098,7 @@ class CallLiveSdk {
306110
306098
  console.log(this.config);
306111
306099
  const {
306112
306100
  el: el2
306113
- } = this.config;
306101
+ } = this.config || {};
306114
306102
  const container = typeof el2 === "string" ? document.querySelector(el2) : el2;
306115
306103
  if (!container) {
306116
306104
  throw new Error(`Container element not found: ${el2}`);
@@ -306122,6 +306110,7 @@ class CallLiveSdk {
306122
306110
  * 渲染SDK内容
306123
306111
  */
306124
306112
  render() {
306113
+ var _a2;
306125
306114
  if (!this.root) {
306126
306115
  throw new Error("SDK not initialized");
306127
306116
  }
@@ -306130,7 +306119,7 @@ class CallLiveSdk {
306130
306119
  height: "100%"
306131
306120
  },
306132
306121
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(GlobalErrorBoundary, {
306133
- errorNotification: this.config.errorNotification,
306122
+ errorNotification: (_a2 = this.config) == null ? void 0 : _a2.errorNotification,
306134
306123
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(WebLiveIndex, {})
306135
306124
  })
306136
306125
  }));
@@ -306218,6 +306207,7 @@ class CallLiveSdk {
306218
306207
  }
306219
306208
  class GuestCallSdk {
306220
306209
  constructor(config2) {
306210
+ var _a2;
306221
306211
  this.root = null;
306222
306212
  if (!config2) {
306223
306213
  window.dispatchEvent(new CustomEvent("paramValidationError", {
@@ -306244,7 +306234,7 @@ class GuestCallSdk {
306244
306234
  useSdkStore.setState({
306245
306235
  guestConfig: this.config
306246
306236
  });
306247
- saveSign(this.config.sign);
306237
+ saveSign((_a2 = this.config) == null ? void 0 : _a2.sign);
306248
306238
  if (config2.apiDomain) {
306249
306239
  setApiDomain(config2.apiDomain);
306250
306240
  }
@@ -306255,7 +306245,7 @@ class GuestCallSdk {
306255
306245
  init() {
306256
306246
  const {
306257
306247
  el: el2
306258
- } = this.config;
306248
+ } = this.config || {};
306259
306249
  const container = typeof el2 === "string" ? document.querySelector(el2) : el2;
306260
306250
  if (!container) {
306261
306251
  throw new Error(`Container element not found: ${el2}`);
@@ -306267,6 +306257,7 @@ class GuestCallSdk {
306267
306257
  * 渲染SDK内容
306268
306258
  */
306269
306259
  render() {
306260
+ var _a2;
306270
306261
  if (!this.root) {
306271
306262
  throw new Error("SDK not initialized");
306272
306263
  }
@@ -306276,7 +306267,7 @@ class GuestCallSdk {
306276
306267
  },
306277
306268
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(App$1, {
306278
306269
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(GlobalErrorBoundary, {
306279
- errorNotification: this.config.errorNotification,
306270
+ errorNotification: (_a2 = this.config) == null ? void 0 : _a2.errorNotification,
306280
306271
  children: /* @__PURE__ */ jsxRuntimeExports.jsx(Guest, {})
306281
306272
  })
306282
306273
  })