@ray-js/ipc-player-integration 0.0.28 → 0.0.29-beta.2

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.
Files changed (66) hide show
  1. package/lib/ctx/ctx.js +10 -2
  2. package/lib/ctx/multiCameraCtx.d.ts +73 -0
  3. package/lib/ctx/multiCameraCtx.js +177 -0
  4. package/lib/features/initPlayerWidgets/index.d.ts +5 -4
  5. package/lib/features/initPlayerWidgets/index.js +7 -0
  6. package/lib/features/initPlayerWidgets/multiCamera.d.ts +8 -0
  7. package/lib/features/initPlayerWidgets/multiCamera.js +78 -0
  8. package/lib/i18n/index.d.ts +20 -0
  9. package/lib/i18n/strings.d.ts +10 -0
  10. package/lib/i18n/strings.js +12 -2
  11. package/lib/iconfont/iconfont.css +197 -4
  12. package/lib/iconfont/iconfont.js +13 -13
  13. package/lib/iconfont/iconfont.json +336 -0
  14. package/lib/iconfont/iconfont.ttf +0 -0
  15. package/lib/iconfont/iconfont.woff +0 -0
  16. package/lib/iconfont/iconfont.woff2 +0 -0
  17. package/lib/interface.d.ts +90 -4
  18. package/lib/interface.js +56 -1
  19. package/lib/ui/constant.d.ts +6 -0
  20. package/lib/ui/constant.js +6 -0
  21. package/lib/ui/ui.js +187 -17
  22. package/lib/ui/ui.less +19 -21
  23. package/lib/utils/storage/index.d.ts +1 -0
  24. package/lib/utils/storage/index.js +8 -1
  25. package/lib/widgets/battery/battery.composition.d.ts +60 -4
  26. package/lib/widgets/fullScreen/fullScreen.js +5 -3
  27. package/lib/widgets/index.d.ts +2 -0
  28. package/lib/widgets/index.js +3 -1
  29. package/lib/widgets/multiCamera/constants.d.ts +1 -0
  30. package/lib/widgets/multiCamera/constants.js +1 -0
  31. package/lib/widgets/multiCamera/index.d.ts +8 -0
  32. package/lib/widgets/multiCamera/index.js +8 -0
  33. package/lib/widgets/multiCamera/index.less +214 -0
  34. package/lib/widgets/multiCamera/landscapeTip.d.ts +6 -0
  35. package/lib/widgets/multiCamera/landscapeTip.js +40 -0
  36. package/lib/widgets/multiCamera/moveView/index.d.ts +9 -0
  37. package/lib/widgets/multiCamera/moveView/index.js +22 -0
  38. package/lib/widgets/multiCamera/moveView/tyComponent/index.d.ts +1 -0
  39. package/lib/widgets/multiCamera/moveView/tyComponent/index.js +42 -0
  40. package/lib/widgets/multiCamera/moveView/tyComponent/index.json +3 -0
  41. package/lib/widgets/multiCamera/moveView/tyComponent/index.tyml +8 -0
  42. package/lib/widgets/multiCamera/moveView/tyComponent/index.tyss +4 -0
  43. package/lib/widgets/multiCamera/moveView/utils.d.ts +1 -0
  44. package/lib/widgets/multiCamera/moveView/utils.js +29 -0
  45. package/lib/widgets/multiCamera/moveablePtzControl.d.ts +22 -0
  46. package/lib/widgets/multiCamera/moveablePtzControl.js +302 -0
  47. package/lib/widgets/multiCamera/multiPtz.d.ts +11 -0
  48. package/lib/widgets/multiCamera/multiPtz.js +46 -0
  49. package/lib/widgets/multiCamera/ptzMoveableTip.d.ts +8 -0
  50. package/lib/widgets/multiCamera/ptzMoveableTip.js +66 -0
  51. package/lib/widgets/multiCamera/switchLayout.d.ts +8 -0
  52. package/lib/widgets/multiCamera/switchLayout.js +57 -0
  53. package/lib/widgets/multiCamera/tileActions.d.ts +6 -0
  54. package/lib/widgets/multiCamera/tileActions.js +15 -0
  55. package/lib/widgets/multiCamera/tileMultiPtz.d.ts +11 -0
  56. package/lib/widgets/multiCamera/tileMultiPtz.js +48 -0
  57. package/lib/widgets/multiCamera/tileSwitchLayout.d.ts +8 -0
  58. package/lib/widgets/multiCamera/tileSwitchLayout.js +38 -0
  59. package/lib/widgets/multiCamera/tileTip.d.ts +6 -0
  60. package/lib/widgets/multiCamera/tileTip.js +50 -0
  61. package/lib/widgets/ptz/ptz.less +15 -8
  62. package/lib/widgets/smallIntercom/index.d.ts +8 -0
  63. package/lib/widgets/smallIntercom/index.js +38 -0
  64. package/lib/widgets/smallIntercom/index.less +4 -0
  65. package/lib/widgets/voiceIntercom/voiceIntercom.d.ts +30 -2
  66. package/package.json +6 -5
package/lib/ctx/ctx.js CHANGED
@@ -11,6 +11,7 @@ import { PlayState, IntercomMode } from '../interface';
11
11
  import { changeIgnoreHideStopPreview } from '../ui/constant';
12
12
  import { ClarityType } from '@ray-js/ray-ipc-utils/lib/interface';
13
13
  import { getEventInstance } from './event';
14
+ import { useMultiCameraCtx } from './multiCameraCtx';
14
15
  const SAVE_TO_ALBUM = 1;
15
16
  export const createUseCtx = _ref => {
16
17
  let {
@@ -35,7 +36,8 @@ export const createUseCtx = _ref => {
35
36
  initBottomRightContent,
36
37
  initAbsoluteContent,
37
38
  saveToAlbum = SAVE_TO_ALBUM,
38
- showPtzControlTip = false
39
+ showPtzControlTip = false,
40
+ videoSplitProtocol
39
41
  } = _ref2;
40
42
  const streamStatus = useRef();
41
43
  // 全屏、竖屏
@@ -231,6 +233,11 @@ export const createUseCtx = _ref => {
231
233
  });
232
234
  });
233
235
  };
236
+ const multiCameraCtx = useMultiCameraCtx({
237
+ devId,
238
+ IPCPlayerInstance: IPCPlayerInstance.current,
239
+ videoSplitProtocol
240
+ });
234
241
  return {
235
242
  devId,
236
243
  brandColor,
@@ -530,7 +537,8 @@ export const createUseCtx = _ref => {
530
537
  return streamStatus.current;
531
538
  },
532
539
  toast,
533
- event: eventRef.current
540
+ event: eventRef.current,
541
+ multiCameraCtx
534
542
  };
535
543
  };
536
544
  };
@@ -0,0 +1,73 @@
1
+ import { MultiCameraLayoutStyle, MultiCameraLenInfo, MultiCameraScreenMode, VideoSplitProtocol } from '../interface';
2
+ interface Props {
3
+ devId: string;
4
+ IPCPlayerInstance: IpcContext;
5
+ videoSplitProtocol?: VideoSplitProtocol;
6
+ }
7
+ /**
8
+ * 多目摄像头相关状态、方法维护
9
+ */
10
+ export declare const useMultiCameraCtx: (props: Props) => {
11
+ /**
12
+ * 是否支持多目
13
+ */
14
+ isSupport: boolean;
15
+ /**
16
+ * 多目分割协议
17
+ */
18
+ protocol: VideoSplitProtocol;
19
+ /**
20
+ * 布局样式
21
+ */
22
+ layoutStyle: import("../interface").RetAtom<MultiCameraLayoutStyle>;
23
+ /**
24
+ * 屏幕模式
25
+ */
26
+ screenMode: import("../interface").RetAtom<MultiCameraScreenMode>;
27
+ /**
28
+ * 下一个布局样式
29
+ */
30
+ nextLayoutStyle: import("../interface").RetAtom<MultiCameraLayoutStyle>;
31
+ /**
32
+ * 选中镜头信息
33
+ */
34
+ selectedLenInfo: import("../interface").RetAtom<MultiCameraLenInfo>;
35
+ /**
36
+ * ptz状态
37
+ */
38
+ ptzStatus: import("../interface").RetAtom<boolean>;
39
+ /**
40
+ * ipcPlayer extendProps
41
+ */
42
+ extendProps: {
43
+ type: number | undefined;
44
+ onSelectVideoIndex: (this: any, event: any) => void;
45
+ onLayoutStatusChanged: (this: any, event: any) => void;
46
+ onLocalizerViewLocated: (this: any, event: any) => Promise<void>;
47
+ };
48
+ /**
49
+ * 设置布局样式
50
+ */
51
+ setLayoutStyle: (style: MultiCameraLayoutStyle) => void;
52
+ /**
53
+ * 设置屏幕模式
54
+ */
55
+ setScreenMode: (mode: MultiCameraScreenMode) => void;
56
+ /**
57
+ * 设置ptz状态
58
+ */
59
+ setPtzStatus: (value: boolean | ((prevValue: boolean) => boolean)) => void;
60
+ /**
61
+ * 显示/隐藏镜头名称
62
+ */
63
+ showLenNames: (value: boolean) => void;
64
+ /**
65
+ * 设置下一个布局样式
66
+ */
67
+ setNextLayoutStyle: (value: MultiCameraLayoutStyle | ((prevValue: MultiCameraLayoutStyle) => MultiCameraLayoutStyle)) => void;
68
+ /**
69
+ * 获取下一个布局样式
70
+ */
71
+ getNextLayoutStyle: () => Promise<MultiCameraLayoutStyle>;
72
+ };
73
+ export {};
@@ -0,0 +1,177 @@
1
+ import { getDpIdByCode, publishDps } from '@ray-js/ray-ipc-utils';
2
+ import { useMemoizedFn } from 'ahooks';
3
+ import { useMemo } from 'react';
4
+ import { MultiCameraLayoutStyle, MultiCameraScreenMode } from '../interface';
5
+ import { useAtom } from './store';
6
+ const DEFAULT_VIDEO_SPLIT_PROTOCOL = {
7
+ total_split_num: 1,
8
+ split_info: [],
9
+ align_info: [],
10
+ p_v: 3
11
+ };
12
+ /**
13
+ * 多目摄像头相关状态、方法维护
14
+ */
15
+ export const useMultiCameraCtx = props => {
16
+ const {
17
+ devId,
18
+ IPCPlayerInstance,
19
+ videoSplitProtocol = DEFAULT_VIDEO_SPLIT_PROTOCOL
20
+ } = props;
21
+ const isSupport = useMemo(() => {
22
+ return (videoSplitProtocol === null || videoSplitProtocol === void 0 ? void 0 : videoSplitProtocol.total_split_num) > 1 && (videoSplitProtocol === null || videoSplitProtocol === void 0 ? void 0 : videoSplitProtocol.p_v) >= 3 && typeof (IPCPlayerInstance === null || IPCPlayerInstance === void 0 ? void 0 : IPCPlayerInstance.switchLayoutStyle) === 'function';
23
+ }, [IPCPlayerInstance, videoSplitProtocol]);
24
+ const [layoutStyleAtom, setLayoutStyle] = useAtom(isSupport ? MultiCameraLayoutStyle.tile : MultiCameraLayoutStyle.pip);
25
+ const [screenModeAtom, setScreenMode] = useAtom(isSupport ? MultiCameraScreenMode.full : MultiCameraScreenMode.short);
26
+ const [selectedLenInfoAtom, setSelectedLenInfo] = useAtom({
27
+ index: 1,
28
+ videoName: '',
29
+ supportPTZ: false,
30
+ supportLocalizer: false,
31
+ supportZoom: false
32
+ });
33
+ const [nextLayoutStyleAtom, setNextLayoutStyle] = useAtom(MultiCameraLayoutStyle.invalid);
34
+ const [ptzStatusAtom, setPtzStatus] = useAtom(false);
35
+ const handleSelectVideoIndex = useMemoizedFn(event => {
36
+ console.info('onSelectVideoIndex', JSON.stringify(event === null || event === void 0 ? void 0 : event.detail));
37
+ setSelectedLenInfo(event.detail);
38
+ });
39
+ const handleLayoutStatusChanged = useMemoizedFn(event => {
40
+ console.info('onLayoutStatusChanged', JSON.stringify(event === null || event === void 0 ? void 0 : event.detail));
41
+ const {
42
+ layoutStyle,
43
+ screenMode
44
+ } = event.detail || {};
45
+ setLayoutStyle(layoutStyle);
46
+ setScreenMode(screenMode);
47
+ });
48
+ const handleLocalizerViewLocated = useMemoizedFn(async event => {
49
+ console.info('onLocalizerViewLocated', JSON.stringify(event === null || event === void 0 ? void 0 : event.detail));
50
+ const dpData = await getDpIdByCode(devId, 'ipc_multi_locate_coors');
51
+ if (dpData.code === 0) {
52
+ const dpId = dpData.data;
53
+ const sndDpValue = JSON.stringify(event.detail);
54
+ publishDps(devId, {
55
+ [dpId]: sndDpValue
56
+ });
57
+ }
58
+ });
59
+ const extendProps = useMemo(() => {
60
+ return {
61
+ // type: 4 表示多目摄像头
62
+ type: isSupport ? 4 : undefined,
63
+ onSelectVideoIndex: handleSelectVideoIndex,
64
+ onLayoutStatusChanged: handleLayoutStatusChanged,
65
+ onLocalizerViewLocated: handleLocalizerViewLocated
66
+ };
67
+ }, [videoSplitProtocol]);
68
+ const _setLayoutStyle = useMemoizedFn(style => {
69
+ var _IPCPlayerInstance$sw;
70
+ IPCPlayerInstance === null || IPCPlayerInstance === void 0 || (_IPCPlayerInstance$sw = IPCPlayerInstance.switchLayoutStyle) === null || _IPCPlayerInstance$sw === void 0 || _IPCPlayerInstance$sw.call(IPCPlayerInstance, {
71
+ layoutStyle: style,
72
+ success: () => {
73
+ console.info('switchLayoutStyle success');
74
+ },
75
+ fail: err => {
76
+ console.error('switchLayoutStyle fail', err);
77
+ }
78
+ });
79
+ });
80
+ const _setScreenMode = useMemoizedFn(mode => {
81
+ var _IPCPlayerInstance$sw2;
82
+ IPCPlayerInstance === null || IPCPlayerInstance === void 0 || (_IPCPlayerInstance$sw2 = IPCPlayerInstance.switchScreenMode) === null || _IPCPlayerInstance$sw2 === void 0 || _IPCPlayerInstance$sw2.call(IPCPlayerInstance, {
83
+ screenMode: mode,
84
+ success: () => {
85
+ console.info('switchScreenMode success');
86
+ },
87
+ fail: err => {
88
+ console.error('switchScreenMode fail', err);
89
+ }
90
+ });
91
+ });
92
+ const getNextLayoutStyle = useMemoizedFn(() => {
93
+ return new Promise((resolve, reject) => {
94
+ var _IPCPlayerInstance$ne;
95
+ IPCPlayerInstance === null || IPCPlayerInstance === void 0 || (_IPCPlayerInstance$ne = IPCPlayerInstance.nextLayoutStyle) === null || _IPCPlayerInstance$ne === void 0 || _IPCPlayerInstance$ne.call(IPCPlayerInstance, {
96
+ success: result => {
97
+ console.info('get nextLayoutStyle success', result);
98
+ resolve(result);
99
+ },
100
+ fail: err => {
101
+ console.error('get nextLayoutStyle fail', err);
102
+ reject(err);
103
+ }
104
+ });
105
+ });
106
+ });
107
+ const showLenNames = useMemoizedFn(value => {
108
+ var _IPCPlayerInstance$sh;
109
+ IPCPlayerInstance === null || IPCPlayerInstance === void 0 || (_IPCPlayerInstance$sh = IPCPlayerInstance.showLenNames) === null || _IPCPlayerInstance$sh === void 0 || _IPCPlayerInstance$sh.call(IPCPlayerInstance, {
110
+ isShow: value,
111
+ success: () => {
112
+ console.info('showLenNames success', value);
113
+ },
114
+ fail: err => {
115
+ console.error('showLenNames fail', err);
116
+ }
117
+ });
118
+ });
119
+ return {
120
+ /**
121
+ * 是否支持多目
122
+ */
123
+ isSupport,
124
+ /**
125
+ * 多目分割协议
126
+ */
127
+ protocol: videoSplitProtocol,
128
+ /**
129
+ * 布局样式
130
+ */
131
+ layoutStyle: layoutStyleAtom,
132
+ /**
133
+ * 屏幕模式
134
+ */
135
+ screenMode: screenModeAtom,
136
+ /**
137
+ * 下一个布局样式
138
+ */
139
+ nextLayoutStyle: nextLayoutStyleAtom,
140
+ /**
141
+ * 选中镜头信息
142
+ */
143
+ selectedLenInfo: selectedLenInfoAtom,
144
+ /**
145
+ * ptz状态
146
+ */
147
+ ptzStatus: ptzStatusAtom,
148
+ /**
149
+ * ipcPlayer extendProps
150
+ */
151
+ extendProps,
152
+ /**
153
+ * 设置布局样式
154
+ */
155
+ setLayoutStyle: _setLayoutStyle,
156
+ /**
157
+ * 设置屏幕模式
158
+ */
159
+ setScreenMode: _setScreenMode,
160
+ /**
161
+ * 设置ptz状态
162
+ */
163
+ setPtzStatus,
164
+ /**
165
+ * 显示/隐藏镜头名称
166
+ */
167
+ showLenNames,
168
+ /**
169
+ * 设置下一个布局样式
170
+ */
171
+ setNextLayoutStyle,
172
+ /**
173
+ * 获取下一个布局样式
174
+ */
175
+ getNextLayoutStyle
176
+ };
177
+ };
@@ -1,8 +1,8 @@
1
1
  /// <reference types="react" />
2
2
  import { UseCtx, WidgetId } from '../../interface';
3
- import { FullScreen } from '../../widgets/fullScreen';
3
+ import { FullScreen } from '../../widgets';
4
4
  type Ctx = ReturnType<UseCtx>;
5
- export declare function initPlayerWidgets(ctx: Ctx, options: {
5
+ export type InitPlayerWidgetsOptions = {
6
6
  verticalResolutionCustomClick?: boolean;
7
7
  hideHorizontalMenu?: boolean;
8
8
  hideScreenShotMenu?: boolean;
@@ -10,6 +10,7 @@ export declare function initPlayerWidgets(ctx: Ctx, options: {
10
10
  hideResolutionMenu?: boolean;
11
11
  hideKbsMenu?: boolean;
12
12
  directionControlProps?: Partial<React.ComponentProps<typeof FullScreen>['directionControlProps']>;
13
- }): Promise<void>;
14
- export declare function updatePlayerWidgetProps(ctx: Ctx, area: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight', widgetId: WidgetId, newProps: Record<string, any>): Promise<void>;
13
+ };
14
+ export declare function initPlayerWidgets(ctx: Ctx, options: InitPlayerWidgetsOptions): Promise<boolean>;
15
+ export declare function updatePlayerWidgetProps(ctx: Ctx, area: 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'absolute', widgetId: WidgetId, newProps: Record<string, any>): Promise<void>;
15
16
  export {};
@@ -3,8 +3,14 @@ import _cloneDeep from 'lodash/cloneDeep';
3
3
  import { defaultTopLeftContent, defaultTopRightContent, defaultBottomLeftContent, defaultBottomRightContent } from '../../ctx';
4
4
  import { hasDpCode } from '../../utils/device';
5
5
  import { MoveInteractiveControlButton } from '../../widgets/moveInteractiveControl';
6
+ import { initMultiCameraPlayerWidgets } from './multiCamera';
6
7
  // 根据当前 dp 信息决定设置哪些 plugin
7
8
  export async function initPlayerWidgets(ctx, options) {
9
+ // 初始化多目设备控件
10
+ if (ctx.multiCameraCtx.isSupport) {
11
+ initMultiCameraPlayerWidgets(ctx, options);
12
+ return true;
13
+ }
8
14
  ctx.addContent('topLeft', defaultTopLeftContent);
9
15
  const newDefaultBottomLeftContent = _cloneDeep(defaultBottomLeftContent);
10
16
  const newDefaultTopRightContent = _cloneDeep(defaultTopRightContent);
@@ -58,6 +64,7 @@ export async function initPlayerWidgets(ctx, options) {
58
64
  }, -1);
59
65
  }
60
66
  });
67
+ return true;
61
68
  }
62
69
  export async function updatePlayerWidgetProps(ctx, area, widgetId, newProps) {
63
70
  const areaContent = ctx.getContent();
@@ -0,0 +1,8 @@
1
+ import { UseCtx } from '../../interface';
2
+ import { InitPlayerWidgetsOptions } from '.';
3
+ type Ctx = ReturnType<UseCtx>;
4
+ /**
5
+ * 多目设备初始化控件
6
+ */
7
+ export declare function initMultiCameraPlayerWidgets(ctx: Ctx, options: InitPlayerWidgetsOptions): void;
8
+ export {};
@@ -0,0 +1,78 @@
1
+ import { FullScreen, MultiPtz, Muted, RecordVideo, Resolution, Screenshot, SmallIntercom, SwitchLayout, VideoBitKBP, TileTip, TileActions, LandscapeTip, MoveablePtzControl, PtzMoveableTip } from '../../widgets';
2
+ import { landscapeTipId, moveablePtzControlId, multiPtzId, ptzMoveableTipId, tileActionsId, tileTipId } from '../../ui/constant';
3
+ import { multiPrefix } from '../../widgets/multiCamera/constants';
4
+ /**
5
+ * 多目设备初始化控件
6
+ */
7
+ export function initMultiCameraPlayerWidgets(ctx, options) {
8
+ const topRightContent = [{
9
+ id: 'VideoBitKBP',
10
+ content: VideoBitKBP
11
+ }];
12
+ const bottomLeftContent = [{
13
+ id: 'Screenshot',
14
+ content: Screenshot
15
+ }, {
16
+ id: 'RecordVideo',
17
+ content: RecordVideo
18
+ }, {
19
+ id: 'Muted',
20
+ content: Muted
21
+ }, {
22
+ id: 'SmallIntercom',
23
+ content: SmallIntercom
24
+ }, {
25
+ id: multiPtzId,
26
+ content: MultiPtz,
27
+ hidden: true
28
+ }, {
29
+ id: 'Resolution',
30
+ content: Resolution,
31
+ initProps: {
32
+ verticalResolutionCustomClick: options.verticalResolutionCustomClick
33
+ }
34
+ }];
35
+ const bottomRightContent = [{
36
+ id: 'SwitchLayout',
37
+ content: SwitchLayout
38
+ }, {
39
+ id: 'FullScreen',
40
+ content: FullScreen
41
+ }];
42
+ const removeContentById = (content, id) => {
43
+ content.splice(content.findIndex(item => item.id === id), 1);
44
+ };
45
+ options.hideKbsMenu && removeContentById(topRightContent, 'VideoBitKBP');
46
+ options.hideScreenShotMenu && removeContentById(bottomLeftContent, 'Screenshot');
47
+ options.hideRecordVideoMenu && removeContentById(bottomLeftContent, 'RecordVideo');
48
+ options.hideHorizontalMenu && removeContentById(bottomRightContent, 'FullScreen');
49
+ ctx.addContent('topLeft', []);
50
+ ctx.addContent('topRight', topRightContent);
51
+ ctx.addContent('bottomLeft', bottomLeftContent);
52
+ ctx.addContent('bottomRight', bottomRightContent);
53
+ ctx.addContent('absolute', [{
54
+ id: tileTipId,
55
+ content: TileTip,
56
+ absoluteContentClassName: `${multiPrefix}-tile-tip-wrap`,
57
+ hidden: true
58
+ }, {
59
+ id: ptzMoveableTipId,
60
+ content: PtzMoveableTip,
61
+ absoluteContentClassName: `${multiPrefix}-tile-tip-wrap`,
62
+ hidden: true
63
+ }, {
64
+ id: landscapeTipId,
65
+ content: LandscapeTip,
66
+ absoluteContentClassName: `${multiPrefix}-tile-tip-wrap`,
67
+ hidden: true
68
+ }, {
69
+ id: tileActionsId,
70
+ absoluteContentClassName: `${multiPrefix}-actions-wrap`,
71
+ content: TileActions
72
+ }, {
73
+ id: moveablePtzControlId,
74
+ content: MoveablePtzControl,
75
+ absoluteNoCoverView: true,
76
+ hidden: true
77
+ }]);
78
+ }
@@ -22,6 +22,11 @@ declare const Strings: kit.I18N<{
22
22
  ipc_player_change_resolution_success: string;
23
23
  ipc_player_ptz_control_tip: string;
24
24
  ipc_player_ptz_close_control_tip: string;
25
+ ipc_player_tile_tip_text_step1: string;
26
+ ipc_player_tile_tip_text_step2: string;
27
+ ipc_player_tip_next: string;
28
+ ipc_player_tip_confirm: string;
29
+ ipc_player_ptz_moveable_tip_text: string;
25
30
  };
26
31
  zh: {
27
32
  ipc_player_resolution_HD: string;
@@ -45,6 +50,11 @@ declare const Strings: kit.I18N<{
45
50
  ipc_player_change_resolution_success: string;
46
51
  ipc_player_ptz_control_tip: string;
47
52
  ipc_player_ptz_close_control_tip: string;
53
+ ipc_player_tile_tip_text_step1: string;
54
+ ipc_player_tile_tip_text_step2: string;
55
+ ipc_player_tip_next: string;
56
+ ipc_player_tip_confirm: string;
57
+ ipc_player_ptz_moveable_tip_text: string;
48
58
  };
49
59
  }, {
50
60
  ipc_player_resolution_HD: string;
@@ -68,6 +78,11 @@ declare const Strings: kit.I18N<{
68
78
  ipc_player_change_resolution_success: string;
69
79
  ipc_player_ptz_control_tip: string;
70
80
  ipc_player_ptz_close_control_tip: string;
81
+ ipc_player_tile_tip_text_step1: string;
82
+ ipc_player_tile_tip_text_step2: string;
83
+ ipc_player_tip_next: string;
84
+ ipc_player_tip_confirm: string;
85
+ ipc_player_ptz_moveable_tip_text: string;
71
86
  } | {
72
87
  ipc_player_resolution_HD: string;
73
88
  ipc_player_resolution_SD: string;
@@ -90,5 +105,10 @@ declare const Strings: kit.I18N<{
90
105
  ipc_player_change_resolution_success: string;
91
106
  ipc_player_ptz_control_tip: string;
92
107
  ipc_player_ptz_close_control_tip: string;
108
+ ipc_player_tile_tip_text_step1: string;
109
+ ipc_player_tile_tip_text_step2: string;
110
+ ipc_player_tip_next: string;
111
+ ipc_player_tip_confirm: string;
112
+ ipc_player_ptz_moveable_tip_text: string;
93
113
  }>;
94
114
  export default Strings;
@@ -21,6 +21,11 @@ declare const _default: {
21
21
  ipc_player_change_resolution_success: string;
22
22
  ipc_player_ptz_control_tip: string;
23
23
  ipc_player_ptz_close_control_tip: string;
24
+ ipc_player_tile_tip_text_step1: string;
25
+ ipc_player_tile_tip_text_step2: string;
26
+ ipc_player_tip_next: string;
27
+ ipc_player_tip_confirm: string;
28
+ ipc_player_ptz_moveable_tip_text: string;
24
29
  };
25
30
  zh: {
26
31
  ipc_player_resolution_HD: string;
@@ -44,6 +49,11 @@ declare const _default: {
44
49
  ipc_player_change_resolution_success: string;
45
50
  ipc_player_ptz_control_tip: string;
46
51
  ipc_player_ptz_close_control_tip: string;
52
+ ipc_player_tile_tip_text_step1: string;
53
+ ipc_player_tile_tip_text_step2: string;
54
+ ipc_player_tip_next: string;
55
+ ipc_player_tip_confirm: string;
56
+ ipc_player_ptz_moveable_tip_text: string;
47
57
  };
48
58
  };
49
59
  export default _default;
@@ -20,7 +20,12 @@ export default {
20
20
  ipc_player_error_record_tip: 'The recording has failed, please try again later.',
21
21
  ipc_player_change_resolution_success: 'Switch successful',
22
22
  ipc_player_ptz_control_tip: 'Swipe up, down, left, or right to control the PTZ direction.',
23
- ipc_player_ptz_close_control_tip: 'Close'
23
+ ipc_player_ptz_close_control_tip: 'Close',
24
+ ipc_player_tile_tip_text_step1: 'Click here to expand/collapse the player',
25
+ ipc_player_tile_tip_text_step2: 'Click here to switch the multiple viewing modes of the lens',
26
+ ipc_player_tip_next: 'Next',
27
+ ipc_player_tip_confirm: 'Got it',
28
+ ipc_player_ptz_moveable_tip_text: 'Hold the middle to drag the direction control area'
24
29
  },
25
30
  zh: {
26
31
  ipc_player_resolution_HD: '高清',
@@ -43,6 +48,11 @@ export default {
43
48
  ipc_player_error_record_tip: '录制出错了,请稍后再试',
44
49
  ipc_player_change_resolution_success: '切换成功',
45
50
  ipc_player_ptz_control_tip: '上下左右滑动,控制云台方向',
46
- ipc_player_ptz_close_control_tip: '关闭'
51
+ ipc_player_ptz_close_control_tip: '关闭',
52
+ ipc_player_tile_tip_text_step1: '点击此处可展开/收起播放窗口',
53
+ ipc_player_tile_tip_text_step2: '点击此处可切换镜头的多种查看方式',
54
+ ipc_player_tip_next: '下一步',
55
+ ipc_player_tip_confirm: '知道了',
56
+ ipc_player_ptz_moveable_tip_text: '长按中间可拖动方向控制区域'
47
57
  }
48
58
  };