model-action 2.0.5 → 2.0.9

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.d.ts CHANGED
@@ -12,5 +12,6 @@ export { GameModeAction } from './modules/GameMode';
12
12
  export { AnimationAction } from './modules/Animation';
13
13
  export { EffectAction } from './modules/Effect';
14
14
  export { InitAction } from './modules/Init';
15
+ export { VideoFusionAction } from './modules/VideoFusion';
15
16
  export type { InitVideoOptions } from './modules/Init';
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -12,4 +12,5 @@ export { GameModeAction } from './modules/GameMode';
12
12
  export { AnimationAction } from './modules/Animation';
13
13
  export { EffectAction } from './modules/Effect';
14
14
  export { InitAction } from './modules/Init';
15
+ export { VideoFusionAction } from './modules/VideoFusion';
15
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Init.d.ts","sourceRoot":"","sources":["../../src/modules/Init.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,mBAAmB,CAAC;AAG3B,MAAM,WAAW,gBAAgB;IAC7B,wBAAwB;IACxB,SAAS,EAAE,WAAW,CAAC;IACvB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,iBAAiB;IACjB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,qBAAa,UAAW,SAAQ,MAAM;IAClC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;CAyEhE"}
1
+ {"version":3,"file":"Init.d.ts","sourceRoot":"","sources":["../../src/modules/Init.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,mBAAmB,CAAC;AAI3B,MAAM,WAAW,gBAAgB;IAC7B,wBAAwB;IACxB,SAAS,EAAE,WAAW,CAAC;IACvB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,iBAAiB;IACjB,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,oBAAoB;IACpB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAED,qBAAa,UAAW,SAAQ,MAAM;IAClC;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB;CA+EhE"}
@@ -4,6 +4,7 @@
4
4
  import { Action } from "./Action";
5
5
  // 导入 peer-stream.js 以确保自定义元素在使用前被注册
6
6
  import "../peer-stream.js";
7
+ import { VideoFusionAction } from "./VideoFusion";
7
8
  export class InitAction extends Action {
8
9
  /**
9
10
  * 初始化视频流
@@ -39,6 +40,11 @@ export class InitAction extends Action {
39
40
  try {
40
41
  const data = JSON.parse(e.detail);
41
42
  options.onMessage(data);
43
+ //视频融合初始化的返回。我这里先自动处理一波,外面可以不处理了
44
+ if (data.cmd === 'videoFusion' && (data.code === '0' || data.message.includes("初始化"))) {
45
+ //获取当前所有融合点位ID
46
+ VideoFusionAction.get();
47
+ }
42
48
  }
43
49
  catch (error) {
44
50
  console.error("解析消息失败:", error);
@@ -1 +1 @@
1
- {"version":3,"file":"Init.js","sourceRoot":"","sources":["../../src/modules/Init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Init.js","sourceRoot":"","sources":["../../src/modules/Init.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,80 @@
1
1
  /**
2
- * 视频融合方法
2
+ * 视频融合
3
3
  */
4
- import { Action, IdList, SendParam } from "./Action";
5
- type VideoFusionActionType = 'init' | 'flyTo' | 'start' | 'stop' | 'pause' | 'resume' | 'refresh';
6
- type VideoFusionType = {
7
- action: VideoFusionActionType;
8
- token?: string;
9
- ip?: string;
4
+ import { Action } from "./Action";
5
+ export type VideoType = 'Video' | 'Record';
6
+ export type RecordType = 'Cloud' | 'Device';
7
+ export interface FusionIdItem {
8
+ id: string;
9
+ }
10
+ export interface VideoFusionInitOptions {
11
+ token: string;
12
+ ip: string;
10
13
  port?: string;
11
14
  isHttps?: boolean;
12
- id?: string;
13
- fov?: number;
14
- backPlay?: boolean;
15
- ids?: IdList;
15
+ }
16
+ export interface VideoFusionPlayOptions {
16
17
  isLocation?: boolean;
17
- videoType?: 'Video' | 'Record';
18
- recordType?: 'Cloud' | 'Device';
19
- } & SendParam;
18
+ videoType?: VideoType;
19
+ recordType?: RecordType;
20
+ recordStartTime?: string;
21
+ recordEndTime?: string;
22
+ backPlay?: boolean;
23
+ ids?: FusionIdItem[];
24
+ }
25
+ export interface VideoFusionFlyToOptions {
26
+ id: string;
27
+ fov?: number;
28
+ }
29
+ export interface VideoFusionSettingOptions {
30
+ armLengthThreshold?: number;
31
+ distanceThreshold?: number;
32
+ rotationThreshold?: number;
33
+ }
20
34
  export declare class VideoFusionAction extends Action {
21
35
  /**
22
- * 视频融合初始化
23
- * @param {*} token TOKEN
24
- * @param {*} ip IP
25
- * @param {*} port 端口
26
- * @param {*} token TOKEN
27
- * @param {*} isHttps 是否https
36
+ * 初始化视频融合
37
+ * @param options 初始化参数
38
+ */
39
+ static init(options: VideoFusionInitOptions): void;
40
+ /**
41
+ * 刷新token
42
+ * @param token 新的token
43
+ */
44
+ static refresh(token: string): void;
45
+ /**
46
+ * 播放视频
47
+ * @param options 播放参数
48
+ */
49
+ static start(options?: VideoFusionPlayOptions): void;
50
+ /**
51
+ * 停止视频
52
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids)
28
53
  */
29
- static videoFusionInit(token: VideoFusionType['token'], ip: VideoFusionType['ip'], port?: VideoFusionType['port'], isHttps?: VideoFusionType['isHttps']): void;
54
+ static stop(ids?: FusionIdItem[]): void;
30
55
  /**
31
- * 飞行到视频融合点位
32
- * @param {*} id 点ID
33
- * @param {*} fov 视场角
56
+ * 暂停录像播放
57
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids)
34
58
  */
35
- static videoFusionFlyTo(id: VideoFusionType['id'], fov: VideoFusionType['fov']): void;
59
+ static pause(ids?: FusionIdItem[]): void;
36
60
  /**
37
- * 开启视频融合
38
- * @param {*} ids id列表
39
- * @param {*} isLocation 是否定位到第一个点。 true = 定位第一个, false = 不定位
40
- * @param {*} backPlay
41
- * @param {*} videoType Video:实时流,Record:录像,默认实时流 Video
61
+ * 恢复录像播放
62
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids
42
63
  */
43
- static videoFusionStart(ids: VideoFusionType['ids'], isLocation?: boolean, backPlay?: boolean, videoType?: 'Video' | 'Record'): void;
64
+ static resume(ids?: FusionIdItem[]): void;
44
65
  /**
45
- * 关闭视频融合
46
- * @param {*} ids id列表
47
- * @param {*} isLocation 是否定位到第一个点。 true = 定位第一个, false = 不定位
48
- * @param {*} backPlay
49
- * @param {*} videoType Video:实时流,Record:录像,默认实时流 Video
66
+ * 视角飞到指定的融合点位
67
+ * @param options 飞到融合点位参数
50
68
  */
51
- static videoFusionStop(ids: VideoFusionType['ids'], isLocation?: boolean, backPlay?: boolean, videoType?: 'Video' | 'Record'): void;
69
+ static flyTo(options: VideoFusionFlyToOptions): void;
52
70
  /**
53
- * 刷新视频融合
54
- * @param {*} token TOKEN
71
+ * 获取当前所有的融合点位ID
55
72
  */
56
- static videoFusionRefresh(token: VideoFusionType['token']): void;
73
+ static get(): void;
57
74
  /**
58
- * 获取融合点位列表
75
+ * 设置定位到融合点的时候,隐藏融合视频的阈值
76
+ * @param options 设置参数
59
77
  */
60
- static videoFusionList(): void;
78
+ static setting(options?: VideoFusionSettingOptions): void;
61
79
  }
62
- export {};
63
80
  //# sourceMappingURL=VideoFusion.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoFusion.d.ts","sourceRoot":"","sources":["../../src/modules/VideoFusion.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAgB,SAAS,EAAE,MAAM,UAAU,CAAC;AAEnE,KAAK,qBAAqB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAA;AACjG,KAAK,eAAe,GAAG;IACnB,MAAM,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CACnC,GAAG,SAAS,CAAA;AAGb,qBAAa,iBAAkB,SAAQ,MAAM;IACzC;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,IAAI,GAAE,eAAe,CAAC,MAAM,CAAU,EAAE,OAAO,GAAE,eAAe,CAAC,SAAS,CAAS;IAYtK;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC;IAU9E;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,GAAE,OAAe,EAAE,QAAQ,GAAE,OAAe,EAAE,SAAS,GAAE,OAAO,GAAG,QAAkB;IAYpJ;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,UAAU,GAAE,OAAe,EAAE,QAAQ,GAAE,OAAe,EAAE,SAAS,GAAE,OAAO,GAAG,QAAkB;IAYnJ;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC;IASzD;;OAEG;IACH,MAAM,CAAC,eAAe;CAOzB"}
1
+ {"version":3,"file":"VideoFusion.d.ts","sourceRoot":"","sources":["../../src/modules/VideoFusion.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAa,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,CAAC;AAG3C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;AAG5C,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;CACd;AAGD,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAGD,MAAM,WAAW,sBAAsB;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;CACxB;AAGD,MAAM,WAAW,uBAAuB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,yBAAyB;IACtC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAyBD,qBAAa,iBAAkB,SAAQ,MAAM;IACzC;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,sBAAsB;IAuB3C;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM;IAiB5B;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,GAAE,sBAA2B;IA4CjD;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE;IAoBhC;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE;IAoBjC;;;OAGG;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,YAAY,EAAE;IAoBlC;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,uBAAuB;IAmB7C;;OAEG;IACH,MAAM,CAAC,GAAG;IAeV;;;OAGG;IACH,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,yBAA8B;CA2BzD"}
@@ -1,98 +1,180 @@
1
1
  /**
2
- * 视频融合方法
2
+ * 视频融合
3
3
  */
4
4
  import { Action } from "./Action";
5
5
  export class VideoFusionAction extends Action {
6
6
  /**
7
- * 视频融合初始化
8
- * @param {*} token TOKEN
9
- * @param {*} ip IP
10
- * @param {*} port 端口
11
- * @param {*} token TOKEN
12
- * @param {*} isHttps 是否https
7
+ * 初始化视频融合
8
+ * @param options 初始化参数
13
9
  */
14
- static videoFusionInit(token, ip, port = '1998', isHttps = false) {
10
+ static init(options) {
11
+ var _a, _b;
12
+ const data = {
13
+ action: 'init',
14
+ token: options.token,
15
+ ip: options.ip,
16
+ port: (_a = options.port) !== null && _a !== void 0 ? _a : '8080',
17
+ isHttps: (_b = options.isHttps) !== null && _b !== void 0 ? _b : true
18
+ };
19
+ const param = {
20
+ cmd: "videoFusion",
21
+ data
22
+ };
23
+ this.sendParam(param, '初始化视频融合');
24
+ }
25
+ /**
26
+ * 刷新token
27
+ * @param token 新的token
28
+ */
29
+ static refresh(token) {
30
+ const data = {
31
+ action: 'refresh',
32
+ token
33
+ };
15
34
  const param = {
16
35
  cmd: "videoFusion",
17
- action: "init",
18
- token,
19
- ip,
20
- port,
21
- isHttps,
36
+ data
22
37
  };
23
- this.sendParam(param, '视频融合初始化');
38
+ this.sendParam(param, '刷新token');
24
39
  }
25
40
  /**
26
- * 飞行到视频融合点位
27
- * @param {*} id 点ID
28
- * @param {*} fov 视场角
41
+ * 播放视频
42
+ * @param options 播放参数
29
43
  */
30
- static videoFusionFlyTo(id, fov) {
44
+ static start(options = {}) {
45
+ const data = {
46
+ action: 'start'
47
+ };
48
+ if (options.isLocation !== undefined) {
49
+ data.isLocation = options.isLocation;
50
+ }
51
+ if (options.videoType) {
52
+ data.videoType = options.videoType;
53
+ }
54
+ if (options.recordType) {
55
+ data.recordType = options.recordType;
56
+ }
57
+ if (options.recordStartTime) {
58
+ data.recordStartTime = options.recordStartTime;
59
+ }
60
+ if (options.recordEndTime) {
61
+ data.recordEndTime = options.recordEndTime;
62
+ }
63
+ if (options.backPlay !== undefined) {
64
+ data.backPlay = options.backPlay;
65
+ }
66
+ if (options.ids) {
67
+ data.ids = options.ids;
68
+ }
31
69
  const param = {
32
70
  cmd: "videoFusion",
33
- action: "flyTo",
34
- id,
35
- fov,
71
+ data
36
72
  };
37
- this.sendParam(param, `飞行到视频融合点位【${id}】`);
73
+ this.sendParam(param, '播放视频');
38
74
  }
39
75
  /**
40
- * 开启视频融合
41
- * @param {*} ids id列表
42
- * @param {*} isLocation 是否定位到第一个点。 true = 定位第一个, false = 不定位
43
- * @param {*} backPlay
44
- * @param {*} videoType Video:实时流,Record:录像,默认实时流 Video
76
+ * 停止视频
77
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids
45
78
  */
46
- static videoFusionStart(ids, isLocation = false, backPlay = false, videoType = 'Video') {
79
+ static stop(ids) {
80
+ const data = {
81
+ action: 'stop'
82
+ };
83
+ if (ids) {
84
+ data.ids = ids;
85
+ }
47
86
  const param = {
48
87
  cmd: "videoFusion",
49
- action: "start",
50
- isLocation,
51
- videoType,
52
- backPlay,
53
- ids,
88
+ data
54
89
  };
55
- this.sendParam(param, '开启视频融合');
90
+ this.sendParam(param, '停止视频');
56
91
  }
57
92
  /**
58
- * 关闭视频融合
59
- * @param {*} ids id列表
60
- * @param {*} isLocation 是否定位到第一个点。 true = 定位第一个, false = 不定位
61
- * @param {*} backPlay
62
- * @param {*} videoType Video:实时流,Record:录像,默认实时流 Video
93
+ * 暂停录像播放
94
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids
63
95
  */
64
- static videoFusionStop(ids, isLocation = false, backPlay = false, videoType = 'Video') {
96
+ static pause(ids) {
97
+ const data = {
98
+ action: 'pause'
99
+ };
100
+ if (ids) {
101
+ data.ids = ids;
102
+ }
65
103
  const param = {
66
104
  cmd: "videoFusion",
67
- action: "stop",
68
- isLocation,
69
- videoType,
70
- backPlay,
71
- ids,
105
+ data
72
106
  };
73
- this.sendParam(param, '关闭视频融合');
107
+ this.sendParam(param, '暂停录像播放');
74
108
  }
75
109
  /**
76
- * 刷新视频融合
77
- * @param {*} token TOKEN
110
+ * 恢复录像播放
111
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids)
78
112
  */
79
- static videoFusionRefresh(token) {
113
+ static resume(ids) {
114
+ const data = {
115
+ action: 'resume'
116
+ };
117
+ if (ids) {
118
+ data.ids = ids;
119
+ }
80
120
  const param = {
81
121
  cmd: "videoFusion",
82
- action: "refresh",
83
- token,
122
+ data
84
123
  };
85
- this.sendParam(param, '刷新视频融合');
124
+ this.sendParam(param, '恢复录像播放');
86
125
  }
87
126
  /**
88
- * 获取融合点位列表
127
+ * 视角飞到指定的融合点位
128
+ * @param options 飞到融合点位参数
89
129
  */
90
- static videoFusionList() {
130
+ static flyTo(options) {
131
+ var _a;
132
+ const data = {
133
+ action: 'flyTo',
134
+ id: options.id,
135
+ fov: (_a = options.fov) !== null && _a !== void 0 ? _a : 90
136
+ };
137
+ const param = {
138
+ cmd: "videoFusion",
139
+ data
140
+ };
141
+ this.sendParam(param, `飞到融合点位 - id: ${options.id}`);
142
+ }
143
+ /**
144
+ * 获取当前所有的融合点位ID
145
+ */
146
+ static get() {
147
+ const data = {
148
+ action: 'get'
149
+ };
150
+ const param = {
151
+ cmd: "videoFusion",
152
+ data
153
+ };
154
+ this.sendParam(param, '获取当前所有的融合点位ID');
155
+ }
156
+ /**
157
+ * 设置定位到融合点的时候,隐藏融合视频的阈值
158
+ * @param options 设置参数
159
+ */
160
+ static setting(options = {}) {
161
+ const data = {
162
+ action: 'setting'
163
+ };
164
+ if (options.armLengthThreshold !== undefined) {
165
+ data.armLengthThreshold = options.armLengthThreshold;
166
+ }
167
+ if (options.distanceThreshold !== undefined) {
168
+ data.distanceThreshold = options.distanceThreshold;
169
+ }
170
+ if (options.rotationThreshold !== undefined) {
171
+ data.rotationThreshold = options.rotationThreshold;
172
+ }
91
173
  const param = {
92
174
  cmd: "videoFusion",
93
- action: "get",
175
+ data
94
176
  };
95
- this.sendParam(param, '获取视频融合点位列表');
177
+ this.sendParam(param, '设置隐藏融合视频的阈值');
96
178
  }
97
179
  }
98
180
  //# sourceMappingURL=VideoFusion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VideoFusion.js","sourceRoot":"","sources":["../../src/modules/VideoFusion.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EAAE,MAAM,EAAmC,MAAM,UAAU,CAAC;AAmBnE,MAAM,OAAO,iBAAkB,SAAQ,MAAM;IACzC;;;;;;;OAOG;IACH,MAAM,CAAC,eAAe,CAAC,KAA+B,EAAE,EAAyB,EAAE,OAAgC,MAAM,EAAE,UAAsC,KAAK;QAClK,MAAM,KAAK,GAAoB;YAC3B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,MAAM;YACd,KAAK;YACL,EAAE;YACF,IAAI;YACJ,OAAO;SACV,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,EAAyB,EAAE,GAA2B;QAC1E,MAAM,KAAK,GAAoB;YAC3B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,OAAO;YACf,EAAE;YACF,GAAG;SACN,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAA2B,EAAE,aAAsB,KAAK,EAAE,WAAoB,KAAK,EAAE,YAAgC,OAAO;QAChJ,MAAM,KAAK,GAAoB;YAC3B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,OAAO;YACf,UAAU;YACV,SAAS;YACT,QAAQ;YACR,GAAG;SACN,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,eAAe,CAAC,GAA2B,EAAE,aAAsB,KAAK,EAAE,WAAoB,KAAK,EAAE,YAAgC,OAAO;QAC/I,MAAM,KAAK,GAAoB;YAC3B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,MAAM;YACd,UAAU;YACV,SAAS;YACT,QAAQ;YACR,GAAG;SACN,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAA+B;QACrD,MAAM,KAAK,GAAoB;YAC3B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,SAAS;YACjB,KAAK;SACR,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe;QAClB,MAAM,KAAK,GAAG;YACV,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,KAAK;SAChB,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC,CAAA;IACvC,CAAC;CACJ"}
1
+ {"version":3,"file":"VideoFusion.js","sourceRoot":"","sources":["../../src/modules/VideoFusion.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "model-action",
3
- "version": "2.0.5",
3
+ "version": "2.0.9",
4
4
  "description": "与三维交互api",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/src/index.ts CHANGED
@@ -12,4 +12,5 @@ export { GameModeAction } from './modules/GameMode'
12
12
  export { AnimationAction } from './modules/Animation'
13
13
  export { EffectAction } from './modules/Effect'
14
14
  export { InitAction } from './modules/Init'
15
+ export { VideoFusionAction } from './modules/VideoFusion'
15
16
  export type { InitVideoOptions } from './modules/Init'
@@ -4,6 +4,7 @@
4
4
  import { Action } from "./Action";
5
5
  // 导入 peer-stream.js 以确保自定义元素在使用前被注册
6
6
  import "../peer-stream.js";
7
+ import { VideoFusionAction } from "./VideoFusion";
7
8
 
8
9
  // 初始化配置选项
9
10
  export interface InitVideoOptions {
@@ -61,6 +62,12 @@ export class InitAction extends Action {
61
62
  try {
62
63
  const data = JSON.parse(e.detail);
63
64
  options.onMessage!(data);
65
+ //视频融合初始化的返回。我这里先自动处理一波,外面可以不处理了
66
+ if (data.cmd === 'videoFusion' && (data.code === '0' || data.message.includes("初始化"))) {
67
+ //获取当前所有融合点位ID
68
+
69
+ VideoFusionAction.get();
70
+ }
64
71
  } catch (error) {
65
72
  console.error("解析消息失败:", error);
66
73
  }
@@ -0,0 +1,316 @@
1
+ /**
2
+ * 视频融合
3
+ */
4
+ import { Action, SendParam } from "./Action";
5
+
6
+ // 视频融合操作类型
7
+ type VideoFusionActionType = 'init' | 'refresh' | 'start' | 'stop' | 'pause' | 'resume' | 'flyTo' | 'get' | 'setting';
8
+
9
+ // 视频类型
10
+ export type VideoType = 'Video' | 'Record';
11
+
12
+ // 录像类型
13
+ export type RecordType = 'Cloud' | 'Device';
14
+
15
+ // 融合点位ID项
16
+ export interface FusionIdItem {
17
+ id: string;
18
+ }
19
+
20
+ // 初始化参数
21
+ export interface VideoFusionInitOptions {
22
+ token: string;
23
+ ip: string;
24
+ port?: string; // 默认 8080
25
+ isHttps?: boolean; // 默认 true
26
+ }
27
+
28
+ // 播放/停止视频参数
29
+ export interface VideoFusionPlayOptions {
30
+ isLocation?: boolean; // 是否定位到第一个点
31
+ videoType?: VideoType; // 视频类型:Video(实时流),Record(录像)
32
+ recordType?: RecordType; // 录像类型:Cloud(中心录像),Device(设备录像)
33
+ recordStartTime?: string; // 录像开始时间,格式:YYYYMMDDTHHmmSSZ
34
+ recordEndTime?: string; // 录像结束时间,格式:YYYYMMDDTHHmmSSZ
35
+ backPlay?: boolean; // 是否回放
36
+ ids?: FusionIdItem[]; // 融合点位ID列表
37
+ }
38
+
39
+ // 飞到融合点位参数
40
+ export interface VideoFusionFlyToOptions {
41
+ id: string; // 视频融合的channelCode
42
+ fov?: number; // pawn相机的视场角,默认90
43
+ }
44
+
45
+ // 设置参数
46
+ export interface VideoFusionSettingOptions {
47
+ armLengthThreshold?: number; // 臂长阈值
48
+ distanceThreshold?: number; // 距离阈值
49
+ rotationThreshold?: number; // 旋转阈值
50
+ }
51
+
52
+ type VideoFusionParamType = SendParam & {
53
+ cmd: "videoFusion";
54
+ data: {
55
+ action: VideoFusionActionType;
56
+ token?: string;
57
+ ip?: string;
58
+ port?: string;
59
+ isHttps?: boolean;
60
+ isLocation?: boolean;
61
+ videoType?: VideoType;
62
+ recordType?: RecordType;
63
+ recordStartTime?: string;
64
+ recordEndTime?: string;
65
+ backPlay?: boolean;
66
+ ids?: FusionIdItem[];
67
+ id?: string;
68
+ fov?: number;
69
+ armLengthThreshold?: number;
70
+ distanceThreshold?: number;
71
+ rotationThreshold?: number;
72
+ };
73
+ }
74
+
75
+ export class VideoFusionAction extends Action {
76
+ /**
77
+ * 初始化视频融合
78
+ * @param options 初始化参数
79
+ */
80
+ static init(options: VideoFusionInitOptions) {
81
+ const data: {
82
+ action: 'init';
83
+ token: string;
84
+ ip: string;
85
+ port: string;
86
+ isHttps: boolean;
87
+ } = {
88
+ action: 'init',
89
+ token: options.token,
90
+ ip: options.ip,
91
+ port: options.port ?? '8080',
92
+ isHttps: options.isHttps ?? true
93
+ };
94
+
95
+ const param: VideoFusionParamType = {
96
+ cmd: "videoFusion",
97
+ data
98
+ };
99
+
100
+ this.sendParam(param, '初始化视频融合');
101
+ }
102
+
103
+ /**
104
+ * 刷新token
105
+ * @param token 新的token
106
+ */
107
+ static refresh(token: string) {
108
+ const data: {
109
+ action: 'refresh';
110
+ token: string;
111
+ } = {
112
+ action: 'refresh',
113
+ token
114
+ };
115
+
116
+ const param: VideoFusionParamType = {
117
+ cmd: "videoFusion",
118
+ data
119
+ };
120
+
121
+ this.sendParam(param, '刷新token');
122
+ }
123
+
124
+ /**
125
+ * 播放视频
126
+ * @param options 播放参数
127
+ */
128
+ static start(options: VideoFusionPlayOptions = {}) {
129
+ const data: {
130
+ action: 'start';
131
+ isLocation?: boolean;
132
+ videoType?: VideoType;
133
+ recordType?: RecordType;
134
+ recordStartTime?: string;
135
+ recordEndTime?: string;
136
+ backPlay?: boolean;
137
+ ids?: FusionIdItem[];
138
+ } = {
139
+ action: 'start'
140
+ };
141
+
142
+ if (options.isLocation !== undefined) {
143
+ data.isLocation = options.isLocation;
144
+ }
145
+ if (options.videoType) {
146
+ data.videoType = options.videoType;
147
+ }
148
+ if (options.recordType) {
149
+ data.recordType = options.recordType;
150
+ }
151
+ if (options.recordStartTime) {
152
+ data.recordStartTime = options.recordStartTime;
153
+ }
154
+ if (options.recordEndTime) {
155
+ data.recordEndTime = options.recordEndTime;
156
+ }
157
+ if (options.backPlay !== undefined) {
158
+ data.backPlay = options.backPlay;
159
+ }
160
+ if (options.ids) {
161
+ data.ids = options.ids;
162
+ }
163
+
164
+ const param: VideoFusionParamType = {
165
+ cmd: "videoFusion",
166
+ data
167
+ };
168
+
169
+ this.sendParam(param, '播放视频');
170
+ }
171
+
172
+ /**
173
+ * 停止视频
174
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids)
175
+ */
176
+ static stop(ids?: FusionIdItem[]) {
177
+ const data: {
178
+ action: 'stop';
179
+ ids?: FusionIdItem[];
180
+ } = {
181
+ action: 'stop'
182
+ };
183
+
184
+ if (ids) {
185
+ data.ids = ids;
186
+ }
187
+
188
+ const param: VideoFusionParamType = {
189
+ cmd: "videoFusion",
190
+ data
191
+ };
192
+
193
+ this.sendParam(param, '停止视频');
194
+ }
195
+
196
+ /**
197
+ * 暂停录像播放
198
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids)
199
+ */
200
+ static pause(ids?: FusionIdItem[]) {
201
+ const data: {
202
+ action: 'pause';
203
+ ids?: FusionIdItem[];
204
+ } = {
205
+ action: 'pause'
206
+ };
207
+
208
+ if (ids) {
209
+ data.ids = ids;
210
+ }
211
+
212
+ const param: VideoFusionParamType = {
213
+ cmd: "videoFusion",
214
+ data
215
+ };
216
+
217
+ this.sendParam(param, '暂停录像播放');
218
+ }
219
+
220
+ /**
221
+ * 恢复录像播放
222
+ * @param ids 融合点位ID列表(可选,如果不传则操作之前start打开的ids)
223
+ */
224
+ static resume(ids?: FusionIdItem[]) {
225
+ const data: {
226
+ action: 'resume';
227
+ ids?: FusionIdItem[];
228
+ } = {
229
+ action: 'resume'
230
+ };
231
+
232
+ if (ids) {
233
+ data.ids = ids;
234
+ }
235
+
236
+ const param: VideoFusionParamType = {
237
+ cmd: "videoFusion",
238
+ data
239
+ };
240
+
241
+ this.sendParam(param, '恢复录像播放');
242
+ }
243
+
244
+ /**
245
+ * 视角飞到指定的融合点位
246
+ * @param options 飞到融合点位参数
247
+ */
248
+ static flyTo(options: VideoFusionFlyToOptions) {
249
+ const data: {
250
+ action: 'flyTo';
251
+ id: string;
252
+ fov: number;
253
+ } = {
254
+ action: 'flyTo',
255
+ id: options.id,
256
+ fov: options.fov ?? 90
257
+ };
258
+
259
+ const param: VideoFusionParamType = {
260
+ cmd: "videoFusion",
261
+ data
262
+ };
263
+
264
+ this.sendParam(param, `飞到融合点位 - id: ${options.id}`);
265
+ }
266
+
267
+ /**
268
+ * 获取当前所有的融合点位ID
269
+ */
270
+ static get() {
271
+ const data: {
272
+ action: 'get';
273
+ } = {
274
+ action: 'get'
275
+ };
276
+
277
+ const param: VideoFusionParamType = {
278
+ cmd: "videoFusion",
279
+ data
280
+ };
281
+
282
+ this.sendParam(param, '获取当前所有的融合点位ID');
283
+ }
284
+
285
+ /**
286
+ * 设置定位到融合点的时候,隐藏融合视频的阈值
287
+ * @param options 设置参数
288
+ */
289
+ static setting(options: VideoFusionSettingOptions = {}) {
290
+ const data: {
291
+ action: 'setting';
292
+ armLengthThreshold?: number;
293
+ distanceThreshold?: number;
294
+ rotationThreshold?: number;
295
+ } = {
296
+ action: 'setting'
297
+ };
298
+
299
+ if (options.armLengthThreshold !== undefined) {
300
+ data.armLengthThreshold = options.armLengthThreshold;
301
+ }
302
+ if (options.distanceThreshold !== undefined) {
303
+ data.distanceThreshold = options.distanceThreshold;
304
+ }
305
+ if (options.rotationThreshold !== undefined) {
306
+ data.rotationThreshold = options.rotationThreshold;
307
+ }
308
+
309
+ const param: VideoFusionParamType = {
310
+ cmd: "videoFusion",
311
+ data
312
+ };
313
+
314
+ this.sendParam(param, '设置隐藏融合视频的阈值');
315
+ }
316
+ }