@xmaxai/web-sdk 1.0.2 → 1.0.3

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.cjs CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- var _chunk5NIEZJP5cjs = require('./chunk-5NIEZJP5.cjs');
29
+ var _chunkJWAAS6P4cjs = require('./chunk-JWAAS6P4.cjs');
30
30
 
31
31
 
32
32
 
@@ -55,5 +55,5 @@ var _chunk5NIEZJP5cjs = require('./chunk-5NIEZJP5.cjs');
55
55
 
56
56
 
57
57
 
58
- exports.CameraPosition = _chunk5NIEZJP5cjs.CameraPosition; exports.MediaService = _chunk5NIEZJP5cjs.MediaService; exports.RealtimeConfiguration = _chunk5NIEZJP5cjs.RealtimeConfiguration; exports.RealtimeConnectionState = _chunk5NIEZJP5cjs.RealtimeConnectionState; exports.RealtimeContext = _chunk5NIEZJP5cjs.RealtimeContext; exports.RealtimeMediaStream = _chunk5NIEZJP5cjs.RealtimeMediaStream; exports.RealtimeModel = _chunk5NIEZJP5cjs.RealtimeModel; exports.RealtimeReason = _chunk5NIEZJP5cjs.RealtimeReason; exports.RealtimeState = _chunk5NIEZJP5cjs.RealtimeState; exports.RealtimeVideoEncoderPreference = _chunk5NIEZJP5cjs.RealtimeVideoEncoderPreference; exports.RealtimeVideoFormat = _chunk5NIEZJP5cjs.RealtimeVideoFormat; exports.RealtimeVideoTrack = _chunk5NIEZJP5cjs.RealtimeVideoTrack; exports.StorageService = _chunk5NIEZJP5cjs.StorageService; exports.StoredFile = _chunk5NIEZJP5cjs.StoredFile; exports.VideoContentMode = _chunk5NIEZJP5cjs.VideoContentMode; exports.XmaxClient = _chunk5NIEZJP5cjs.XmaxClient; exports.XmaxConfiguration = _chunk5NIEZJP5cjs.XmaxConfiguration; exports.XmaxEnvironment = _chunk5NIEZJP5cjs.XmaxEnvironment; exports.XmaxError = _chunk5NIEZJP5cjs.XmaxError; exports.XmaxErrorCode = _chunk5NIEZJP5cjs.XmaxErrorCode; exports.XmaxLogger = _chunk5NIEZJP5cjs.XmaxLogger; exports.XmaxLoggerOption = _chunk5NIEZJP5cjs.XmaxLoggerOption; exports.XmaxRealtimeVideoView = _chunk5NIEZJP5cjs.XmaxRealtimeVideoView; exports.XmaxVideoView = _chunk5NIEZJP5cjs.XmaxVideoView; exports.apiBaseURL = _chunk5NIEZJP5cjs.apiBaseURL; exports.defaultCameraVideoFormat = _chunk5NIEZJP5cjs.defaultCameraVideoFormat; exports.defaultFrameRate = _chunk5NIEZJP5cjs.defaultFrameRate;
58
+ exports.CameraPosition = _chunkJWAAS6P4cjs.CameraPosition; exports.MediaService = _chunkJWAAS6P4cjs.MediaService; exports.RealtimeConfiguration = _chunkJWAAS6P4cjs.RealtimeConfiguration; exports.RealtimeConnectionState = _chunkJWAAS6P4cjs.RealtimeConnectionState; exports.RealtimeContext = _chunkJWAAS6P4cjs.RealtimeContext; exports.RealtimeMediaStream = _chunkJWAAS6P4cjs.RealtimeMediaStream; exports.RealtimeModel = _chunkJWAAS6P4cjs.RealtimeModel; exports.RealtimeReason = _chunkJWAAS6P4cjs.RealtimeReason; exports.RealtimeState = _chunkJWAAS6P4cjs.RealtimeState; exports.RealtimeVideoEncoderPreference = _chunkJWAAS6P4cjs.RealtimeVideoEncoderPreference; exports.RealtimeVideoFormat = _chunkJWAAS6P4cjs.RealtimeVideoFormat; exports.RealtimeVideoTrack = _chunkJWAAS6P4cjs.RealtimeVideoTrack; exports.StorageService = _chunkJWAAS6P4cjs.StorageService; exports.StoredFile = _chunkJWAAS6P4cjs.StoredFile; exports.VideoContentMode = _chunkJWAAS6P4cjs.VideoContentMode; exports.XmaxClient = _chunkJWAAS6P4cjs.XmaxClient; exports.XmaxConfiguration = _chunkJWAAS6P4cjs.XmaxConfiguration; exports.XmaxEnvironment = _chunkJWAAS6P4cjs.XmaxEnvironment; exports.XmaxError = _chunkJWAAS6P4cjs.XmaxError; exports.XmaxErrorCode = _chunkJWAAS6P4cjs.XmaxErrorCode; exports.XmaxLogger = _chunkJWAAS6P4cjs.XmaxLogger; exports.XmaxLoggerOption = _chunkJWAAS6P4cjs.XmaxLoggerOption; exports.XmaxRealtimeVideoView = _chunkJWAAS6P4cjs.XmaxRealtimeVideoView; exports.XmaxVideoView = _chunkJWAAS6P4cjs.XmaxVideoView; exports.apiBaseURL = _chunkJWAAS6P4cjs.apiBaseURL; exports.defaultCameraVideoFormat = _chunkJWAAS6P4cjs.defaultCameraVideoFormat; exports.defaultFrameRate = _chunkJWAAS6P4cjs.defaultFrameRate;
59
59
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-7YxhQg/source/packages/xmax-sdk/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,spDAAC","file":"/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-7YxhQg/source/packages/xmax-sdk/dist/index.cjs"}
1
+ {"version":3,"sources":["/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-weZCpU/source/packages/xmax-sdk/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,spDAAC","file":"/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-weZCpU/source/packages/xmax-sdk/dist/index.cjs"}
package/dist/index.d.cts CHANGED
@@ -314,7 +314,7 @@ declare enum XmaxErrorCode {
314
314
  */
315
315
  cameraPermissionDenied = "CAMERA_PERMISSION_DENIED",
316
316
  /**
317
- * @deprecated 为兼容保留;相机亮度检查超时现仅记录警告并继续流程,不再抛出此错误。
317
+ * @deprecated 为兼容保留;相机预热改为固定等待,不再抛出此错误。
318
318
  */
319
319
  cameraExposureTimeout = "CAMERA_EXPOSURE_TIMEOUT",
320
320
  /**
@@ -504,13 +504,18 @@ interface RealtimeLaunchTiming {
504
504
  */
505
505
  readonly cameraMs?: number;
506
506
  /**
507
- * 开始创建会话到 RTC 进房配置完成;不含等待亮度检测及发布本地流。
507
+ * 确认相机与麦克风权限可用的耗时;系统弹窗时统计到用户完成授权。
508
+ * 权限被拒绝或浏览器不支持观察时不记录。
509
+ */
510
+ readonly permissionMs?: number;
511
+ /**
512
+ * 开始创建会话到 RTC 进房配置与相机预热等待完成;不含发布本地流。
508
513
  */
509
514
  readonly connectionMs?: number;
510
515
  /**
511
- * 相机亮度检测开始到首张合格帧或超时放行;与建立连接并行,不可直接相加。禁用检测时为 undefined。
516
+ * 发布本地流到 RTC 房间的耗时。
512
517
  */
513
- readonly frameValidationMs?: number;
518
+ readonly publishMs?: number;
514
519
  /**
515
520
  * 开始发送生成信令到 SDK 远端视图首次呈现视频帧。
516
521
  */
@@ -656,7 +661,7 @@ interface XmaxRealtimeManaging {
656
661
  position: CameraPosition;
657
662
  useMicrophone: boolean;
658
663
  /**
659
- * 是否在发布前检测相机帧亮度,默认 true;false 跳过检测及其等待,不产生检测耗时。
664
+ * 是否在发布前等待相机预热(固定 200ms),默认 true;false 跳过等待,不产生预热耗时。
660
665
  */
661
666
  enableFrameValidation?: boolean;
662
667
  }): Promise<RealtimeMediaStream>;
@@ -677,8 +682,7 @@ interface XmaxRealtimeManaging {
677
682
  * 使用当前 Manager 创建的本地流建立实时连接。
678
683
  *
679
684
  * 创建实时会话、加入 RTC 房间并发布本地流,成功后启动会话心跳。
680
- * 启用帧检测时,发布前并行检查相机亮度,首张合格帧即放行;2 秒内未通过检查则
681
- * 记录警告并按当前画面继续发布,不因环境较暗而阻断连接。
685
+ * 启用帧检测时,发布前并行等待相机预热(固定 200ms),避免把黑帧推给 RTC。
682
686
  * 返回的远端媒体流在生成开始后承载远端生成画面。
683
687
  *
684
688
  * @param localStream 由 `createLocalCameraStream` 创建的本地媒体流。
@@ -985,8 +989,13 @@ interface ApiServicing {
985
989
  put<T>(path: string, body?: unknown): Promise<T>;
986
990
  /**
987
991
  * 发送 DELETE 请求。
992
+ *
993
+ * @param options.keepalive 为 true 时请求可存活于页面卸载之后,
994
+ * 用于刷新或关闭页签时的清理请求。
988
995
  */
989
- delete<T>(path: string): Promise<T>;
996
+ delete<T>(path: string, options?: {
997
+ keepalive?: boolean;
998
+ }): Promise<T>;
990
999
  }
991
1000
 
992
1001
  /**
package/dist/index.d.ts CHANGED
@@ -314,7 +314,7 @@ declare enum XmaxErrorCode {
314
314
  */
315
315
  cameraPermissionDenied = "CAMERA_PERMISSION_DENIED",
316
316
  /**
317
- * @deprecated 为兼容保留;相机亮度检查超时现仅记录警告并继续流程,不再抛出此错误。
317
+ * @deprecated 为兼容保留;相机预热改为固定等待,不再抛出此错误。
318
318
  */
319
319
  cameraExposureTimeout = "CAMERA_EXPOSURE_TIMEOUT",
320
320
  /**
@@ -504,13 +504,18 @@ interface RealtimeLaunchTiming {
504
504
  */
505
505
  readonly cameraMs?: number;
506
506
  /**
507
- * 开始创建会话到 RTC 进房配置完成;不含等待亮度检测及发布本地流。
507
+ * 确认相机与麦克风权限可用的耗时;系统弹窗时统计到用户完成授权。
508
+ * 权限被拒绝或浏览器不支持观察时不记录。
509
+ */
510
+ readonly permissionMs?: number;
511
+ /**
512
+ * 开始创建会话到 RTC 进房配置与相机预热等待完成;不含发布本地流。
508
513
  */
509
514
  readonly connectionMs?: number;
510
515
  /**
511
- * 相机亮度检测开始到首张合格帧或超时放行;与建立连接并行,不可直接相加。禁用检测时为 undefined。
516
+ * 发布本地流到 RTC 房间的耗时。
512
517
  */
513
- readonly frameValidationMs?: number;
518
+ readonly publishMs?: number;
514
519
  /**
515
520
  * 开始发送生成信令到 SDK 远端视图首次呈现视频帧。
516
521
  */
@@ -656,7 +661,7 @@ interface XmaxRealtimeManaging {
656
661
  position: CameraPosition;
657
662
  useMicrophone: boolean;
658
663
  /**
659
- * 是否在发布前检测相机帧亮度,默认 true;false 跳过检测及其等待,不产生检测耗时。
664
+ * 是否在发布前等待相机预热(固定 200ms),默认 true;false 跳过等待,不产生预热耗时。
660
665
  */
661
666
  enableFrameValidation?: boolean;
662
667
  }): Promise<RealtimeMediaStream>;
@@ -677,8 +682,7 @@ interface XmaxRealtimeManaging {
677
682
  * 使用当前 Manager 创建的本地流建立实时连接。
678
683
  *
679
684
  * 创建实时会话、加入 RTC 房间并发布本地流,成功后启动会话心跳。
680
- * 启用帧检测时,发布前并行检查相机亮度,首张合格帧即放行;2 秒内未通过检查则
681
- * 记录警告并按当前画面继续发布,不因环境较暗而阻断连接。
685
+ * 启用帧检测时,发布前并行等待相机预热(固定 200ms),避免把黑帧推给 RTC。
682
686
  * 返回的远端媒体流在生成开始后承载远端生成画面。
683
687
  *
684
688
  * @param localStream 由 `createLocalCameraStream` 创建的本地媒体流。
@@ -985,8 +989,13 @@ interface ApiServicing {
985
989
  put<T>(path: string, body?: unknown): Promise<T>;
986
990
  /**
987
991
  * 发送 DELETE 请求。
992
+ *
993
+ * @param options.keepalive 为 true 时请求可存活于页面卸载之后,
994
+ * 用于刷新或关闭页签时的清理请求。
988
995
  */
989
- delete<T>(path: string): Promise<T>;
996
+ delete<T>(path: string, options?: {
997
+ keepalive?: boolean;
998
+ }): Promise<T>;
990
999
  }
991
1000
 
992
1001
  /**
package/dist/index.js CHANGED
@@ -26,7 +26,7 @@ import {
26
26
  apiBaseURL,
27
27
  defaultCameraVideoFormat,
28
28
  defaultFrameRate
29
- } from "./chunk-6RIEDVRQ.js";
29
+ } from "./chunk-YMLRUDAO.js";
30
30
  export {
31
31
  CameraPosition,
32
32
  MediaService,
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunk5NIEZJP5cjs = require('../chunk-5NIEZJP5.cjs');
4
+ var _chunkJWAAS6P4cjs = require('../chunk-JWAAS6P4.cjs');
5
5
 
6
6
  // src/react/XmaxRealtimeVideo.tsx
7
7
 
@@ -17,7 +17,7 @@ function XmaxRealtimeVideo(props) {
17
17
  if (!container) {
18
18
  return;
19
19
  }
20
- const view = new (0, _chunk5NIEZJP5cjs.XmaxRealtimeVideoView)();
20
+ const view = new (0, _chunkJWAAS6P4cjs.XmaxRealtimeVideoView)();
21
21
  view.element.style.width = "100%";
22
22
  view.element.style.height = "100%";
23
23
  view.attach(container);
@@ -71,7 +71,7 @@ function XmaxVideo(props) {
71
71
  if (!container) {
72
72
  return;
73
73
  }
74
- const view = new (0, _chunk5NIEZJP5cjs.XmaxVideoView)();
74
+ const view = new (0, _chunkJWAAS6P4cjs.XmaxVideoView)();
75
75
  view.element.style.width = "100%";
76
76
  view.element.style.height = "100%";
77
77
  view.attach(container);
@@ -1 +1 @@
1
- {"version":3,"sources":["/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-7YxhQg/source/packages/xmax-sdk/dist/react/index.cjs","../../src/react/XmaxRealtimeVideo.tsx","../../src/react/XmaxVideo.tsx"],"names":["useRef","useEffect","jsx"],"mappings":"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","file":"/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-7YxhQg/source/packages/xmax-sdk/dist/react/index.cjs","sourcesContent":[null,"import {\n VideoContentMode,\n XmaxRealtimeVideoView,\n type RealtimeVideoTrack,\n} from \"../index\";\nimport {\n useEffect,\n useRef,\n type CSSProperties,\n} from \"react\";\n\nexport interface XmaxRealtimeVideoProps {\n /**\n * 当前显示的本地视频轨道。\n */\n localTrack?: RealtimeVideoTrack;\n\n /**\n * 当前显示的远端生成视频轨道;首帧提交后自动渐入。\n */\n remoteTrack?: RealtimeVideoTrack;\n\n /**\n * 视频内容在容器中的显示模式,默认 fill。\n */\n videoContentMode?: VideoContentMode;\n\n /**\n * 容器类名。\n */\n className?: string;\n\n /**\n * 容器样式。\n */\n style?: CSSProperties;\n}\n\n/**\n * 本地预览和远端生成画面自动切换的 React 组件。\n */\nexport function XmaxRealtimeVideo(props: XmaxRealtimeVideoProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const viewRef = useRef<XmaxRealtimeVideoView | undefined>(undefined);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const view = new XmaxRealtimeVideoView();\n view.element.style.width = \"100%\";\n view.element.style.height = \"100%\";\n view.attach(container);\n viewRef.current = view;\n return () => {\n viewRef.current = undefined;\n view.localTrack = undefined;\n view.remoteTrack = undefined;\n view.detach();\n };\n }, []);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view) {\n view.localTrack = props.localTrack;\n }\n }, [props.localTrack]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view) {\n view.remoteTrack = props.remoteTrack;\n }\n }, [props.remoteTrack]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view && props.videoContentMode) {\n view.videoContentMode = props.videoContentMode;\n }\n }, [props.videoContentMode]);\n\n return (\n <div\n ref={containerRef}\n className={props.className}\n style={{ position: \"relative\", overflow: \"hidden\", ...props.style }}\n />\n );\n}\n","import {\n VideoContentMode,\n XmaxVideoView,\n type RealtimeVideoTrack,\n} from \"../index\";\nimport {\n useEffect,\n useRef,\n type CSSProperties,\n} from \"react\";\n\nexport interface XmaxVideoProps {\n /**\n * 当前显示的视频轨道;置空时清空画面。\n */\n track?: RealtimeVideoTrack;\n\n /**\n * 视频内容在容器中的显示模式,默认 fill。\n */\n videoContentMode?: VideoContentMode;\n\n /**\n * 是否镜像显示(仅影响显示,不影响发布流)。\n */\n mirrored?: boolean;\n\n /**\n * 容器类名。\n */\n className?: string;\n\n /**\n * 容器样式。\n */\n style?: CSSProperties;\n}\n\n/**\n * 单轨视频 React 组件:把一路视频轨渲染到容器。\n */\nexport function XmaxVideo(props: XmaxVideoProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const viewRef = useRef<XmaxVideoView | undefined>(undefined);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const view = new XmaxVideoView();\n view.element.style.width = \"100%\";\n view.element.style.height = \"100%\";\n view.attach(container);\n viewRef.current = view;\n return () => {\n viewRef.current = undefined;\n view.track = undefined;\n view.detach();\n };\n }, []);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view) {\n view.track = props.track;\n }\n }, [props.track]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view && props.videoContentMode) {\n view.videoContentMode = props.videoContentMode;\n }\n }, [props.videoContentMode]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view && props.mirrored !== undefined) {\n view.isMirrored = props.mirrored;\n }\n }, [props.mirrored]);\n\n return (\n <div\n ref={containerRef}\n className={props.className}\n style={{ position: \"relative\", overflow: \"hidden\", ...props.style }}\n />\n );\n}\n"]}
1
+ {"version":3,"sources":["/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-weZCpU/source/packages/xmax-sdk/dist/react/index.cjs","../../src/react/XmaxRealtimeVideo.tsx","../../src/react/XmaxVideo.tsx"],"names":["useRef","useEffect","jsx"],"mappings":"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","file":"/private/var/folders/5j/p3g3j18x2w3byrl5wtnk94tc0000gn/T/xmax-web-release-weZCpU/source/packages/xmax-sdk/dist/react/index.cjs","sourcesContent":[null,"import {\n VideoContentMode,\n XmaxRealtimeVideoView,\n type RealtimeVideoTrack,\n} from \"../index\";\nimport {\n useEffect,\n useRef,\n type CSSProperties,\n} from \"react\";\n\nexport interface XmaxRealtimeVideoProps {\n /**\n * 当前显示的本地视频轨道。\n */\n localTrack?: RealtimeVideoTrack;\n\n /**\n * 当前显示的远端生成视频轨道;首帧提交后自动渐入。\n */\n remoteTrack?: RealtimeVideoTrack;\n\n /**\n * 视频内容在容器中的显示模式,默认 fill。\n */\n videoContentMode?: VideoContentMode;\n\n /**\n * 容器类名。\n */\n className?: string;\n\n /**\n * 容器样式。\n */\n style?: CSSProperties;\n}\n\n/**\n * 本地预览和远端生成画面自动切换的 React 组件。\n */\nexport function XmaxRealtimeVideo(props: XmaxRealtimeVideoProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const viewRef = useRef<XmaxRealtimeVideoView | undefined>(undefined);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const view = new XmaxRealtimeVideoView();\n view.element.style.width = \"100%\";\n view.element.style.height = \"100%\";\n view.attach(container);\n viewRef.current = view;\n return () => {\n viewRef.current = undefined;\n view.localTrack = undefined;\n view.remoteTrack = undefined;\n view.detach();\n };\n }, []);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view) {\n view.localTrack = props.localTrack;\n }\n }, [props.localTrack]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view) {\n view.remoteTrack = props.remoteTrack;\n }\n }, [props.remoteTrack]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view && props.videoContentMode) {\n view.videoContentMode = props.videoContentMode;\n }\n }, [props.videoContentMode]);\n\n return (\n <div\n ref={containerRef}\n className={props.className}\n style={{ position: \"relative\", overflow: \"hidden\", ...props.style }}\n />\n );\n}\n","import {\n VideoContentMode,\n XmaxVideoView,\n type RealtimeVideoTrack,\n} from \"../index\";\nimport {\n useEffect,\n useRef,\n type CSSProperties,\n} from \"react\";\n\nexport interface XmaxVideoProps {\n /**\n * 当前显示的视频轨道;置空时清空画面。\n */\n track?: RealtimeVideoTrack;\n\n /**\n * 视频内容在容器中的显示模式,默认 fill。\n */\n videoContentMode?: VideoContentMode;\n\n /**\n * 是否镜像显示(仅影响显示,不影响发布流)。\n */\n mirrored?: boolean;\n\n /**\n * 容器类名。\n */\n className?: string;\n\n /**\n * 容器样式。\n */\n style?: CSSProperties;\n}\n\n/**\n * 单轨视频 React 组件:把一路视频轨渲染到容器。\n */\nexport function XmaxVideo(props: XmaxVideoProps) {\n const containerRef = useRef<HTMLDivElement>(null);\n const viewRef = useRef<XmaxVideoView | undefined>(undefined);\n\n useEffect(() => {\n const container = containerRef.current;\n if (!container) {\n return;\n }\n\n const view = new XmaxVideoView();\n view.element.style.width = \"100%\";\n view.element.style.height = \"100%\";\n view.attach(container);\n viewRef.current = view;\n return () => {\n viewRef.current = undefined;\n view.track = undefined;\n view.detach();\n };\n }, []);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view) {\n view.track = props.track;\n }\n }, [props.track]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view && props.videoContentMode) {\n view.videoContentMode = props.videoContentMode;\n }\n }, [props.videoContentMode]);\n\n useEffect(() => {\n const view = viewRef.current;\n if (view && props.mirrored !== undefined) {\n view.isMirrored = props.mirrored;\n }\n }, [props.mirrored]);\n\n return (\n <div\n ref={containerRef}\n className={props.className}\n style={{ position: \"relative\", overflow: \"hidden\", ...props.style }}\n />\n );\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  XmaxRealtimeVideoView,
3
3
  XmaxVideoView
4
- } from "../chunk-6RIEDVRQ.js";
4
+ } from "../chunk-YMLRUDAO.js";
5
5
 
6
6
  // src/react/XmaxRealtimeVideo.tsx
7
7
  import {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmaxai/web-sdk",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "license": "MIT",
5
5
  "description": "XmaxSDK for Web — Realtime Interactive Video Generation",
6
6
  "type": "module",