@ray-js/ipc-player-integration 0.0.1-beta-51 → 0.0.1-beta-53

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/lib/ctx/ctx.js CHANGED
@@ -81,9 +81,7 @@ export const createUseCtx = _ref => {
81
81
  eventRef.current = getEventInstance();
82
82
  }
83
83
  useEffect(() => {
84
- console.log('========================+++++');
85
84
  if (devId && _playState === PlayState.PLAYING) {
86
- console.log('===================');
87
85
  // 获取缓存的值且同步
88
86
  getMemoryState(devId).then(res => {
89
87
  console.log('==== getMemoryState ====', res);
@@ -223,30 +221,52 @@ export const createUseCtx = _ref => {
223
221
  }
224
222
  });
225
223
  },
226
- fail: err => {
227
- showModal({
228
- title: '',
229
- content: Strings.getLang('ipc_player_no_record_permission'),
230
- cancelText: Strings.getLang('ipc_player_authorize_cancel_text'),
231
- confirmText: Strings.getLang('ipc_player_authorize_confirm_text'),
232
- isShowGlobal: true,
233
- success: res => {
234
- if (res.confirm) {
235
- const {
236
- platform
237
- } = getSystemInfoSync();
238
- console.log(platform, 'platform');
239
- openAppSystemSettingPage({
240
- // scope: platform === 'ios' ? 'App-Settings' : 'App-Settings-Permission',
241
- scope: 'App-Settings',
242
- success: () => {
243
- console.log('跳转成功');
224
+ fail: () => {
225
+ ty.authorize({
226
+ // 麦克风权限
227
+ scope: 'scope.record',
228
+ success: () => {
229
+ IPCPlayerInstance.current.startTalk({
230
+ success: () => {
231
+ updateAtom(intercom, true);
232
+ resolve(true);
233
+ },
234
+ fail: err => {
235
+ const errObj = err.innerError || err || {};
236
+ const errMsg = errObj.errorMsg || Strings.getLang('ipc_player_error_intercom');
237
+ toast({
238
+ title: errMsg
239
+ });
240
+ reject(err);
241
+ }
242
+ });
243
+ },
244
+ fail: err => {
245
+ showModal({
246
+ title: '',
247
+ content: Strings.getLang('ipc_player_no_record_permission'),
248
+ cancelText: Strings.getLang('ipc_player_authorize_cancel_text'),
249
+ confirmText: Strings.getLang('ipc_player_authorize_confirm_text'),
250
+ isShowGlobal: true,
251
+ success: res => {
252
+ if (res.confirm) {
253
+ const {
254
+ platform
255
+ } = getSystemInfoSync();
256
+ console.log(platform, 'platform');
257
+ openAppSystemSettingPage({
258
+ // scope: platform === 'ios' ? 'App-Settings' : 'App-Settings-Permission',
259
+ scope: 'App-Settings',
260
+ success: () => {
261
+ console.log('跳转成功');
262
+ }
263
+ });
244
264
  }
245
- });
246
- }
265
+ }
266
+ });
267
+ reject(err);
247
268
  }
248
269
  });
249
- reject(err);
250
270
  }
251
271
  });
252
272
  } else {
@@ -278,7 +298,7 @@ export const createUseCtx = _ref => {
278
298
  }
279
299
  return new Promise((resolve, reject) => {
280
300
  if (target) {
281
- // 麦克风权限
301
+ // 写入相册
282
302
  ty.authorizeStatus({
283
303
  scope: 'scope.writePhotosAlbum',
284
304
  success: () => {
@@ -293,30 +313,46 @@ export const createUseCtx = _ref => {
293
313
  }
294
314
  });
295
315
  },
296
- fail: err => {
297
- showModal({
298
- title: '',
299
- content: Strings.getLang('ipc_player_no_album_permission'),
300
- cancelText: Strings.getLang('ipc_player_authorize_cancel_text'),
301
- confirmText: Strings.getLang('ipc_player_authorize_confirm_text'),
302
- isShowGlobal: true,
303
- success: res => {
304
- if (res.confirm) {
305
- const {
306
- platform
307
- } = getSystemInfoSync();
308
- console.log(platform, 'platform');
309
- openAppSystemSettingPage({
310
- // scope: platform === 'ios' ? 'App-Settings' : 'App-Settings-Permission',
311
- scope: 'App-Settings',
312
- success: () => {
313
- console.log('跳转成功');
316
+ fail: () => {
317
+ ty.authorize({
318
+ scope: 'scope.writePhotosAlbum',
319
+ success: () => {
320
+ IPCPlayerInstance.current.startRecord({
321
+ saveToAlbum,
322
+ success: () => {
323
+ updateAtom(recording, true);
324
+ resolve(true);
325
+ },
326
+ fail: err => {
327
+ reject(err);
328
+ }
329
+ });
330
+ },
331
+ fail: () => {
332
+ showModal({
333
+ title: '',
334
+ content: Strings.getLang('ipc_player_no_album_permission'),
335
+ cancelText: Strings.getLang('ipc_player_authorize_cancel_text'),
336
+ confirmText: Strings.getLang('ipc_player_authorize_confirm_text'),
337
+ isShowGlobal: true,
338
+ success: res => {
339
+ if (res.confirm) {
340
+ const {
341
+ platform
342
+ } = getSystemInfoSync();
343
+ console.log(platform, 'platform');
344
+ openAppSystemSettingPage({
345
+ // scope: platform === 'ios' ? 'App-Settings' : 'App-Settings-Permission',
346
+ scope: 'App-Settings',
347
+ success: () => {
348
+ console.log('跳转成功');
349
+ }
350
+ });
314
351
  }
315
- });
316
- }
352
+ }
353
+ });
317
354
  }
318
355
  });
319
- reject(err);
320
356
  }
321
357
  });
322
358
  } else {
@@ -18,6 +18,7 @@ declare const Strings: kit.I18N<{
18
18
  ipc_player_no_album_permission: string;
19
19
  ipc_player_authorize_cancel_text: string;
20
20
  ipc_player_authorize_confirm_text: string;
21
+ ipc_player_error_record_tip: string;
21
22
  };
22
23
  zh: {
23
24
  ipc_player_resolution_HD: string;
@@ -37,6 +38,7 @@ declare const Strings: kit.I18N<{
37
38
  ipc_player_no_album_permission: string;
38
39
  ipc_player_authorize_cancel_text: string;
39
40
  ipc_player_authorize_confirm_text: string;
41
+ ipc_player_error_record_tip: string;
40
42
  };
41
43
  }, {
42
44
  ipc_player_resolution_HD: string;
@@ -56,6 +58,7 @@ declare const Strings: kit.I18N<{
56
58
  ipc_player_no_album_permission: string;
57
59
  ipc_player_authorize_cancel_text: string;
58
60
  ipc_player_authorize_confirm_text: string;
61
+ ipc_player_error_record_tip: string;
59
62
  } | {
60
63
  ipc_player_resolution_HD: string;
61
64
  ipc_player_resolution_SD: string;
@@ -74,5 +77,6 @@ declare const Strings: kit.I18N<{
74
77
  ipc_player_no_album_permission: string;
75
78
  ipc_player_authorize_cancel_text: string;
76
79
  ipc_player_authorize_confirm_text: string;
80
+ ipc_player_error_record_tip: string;
77
81
  }>;
78
82
  export default Strings;
@@ -17,6 +17,7 @@ declare const _default: {
17
17
  ipc_player_no_album_permission: string;
18
18
  ipc_player_authorize_cancel_text: string;
19
19
  ipc_player_authorize_confirm_text: string;
20
+ ipc_player_error_record_tip: string;
20
21
  };
21
22
  zh: {
22
23
  ipc_player_resolution_HD: string;
@@ -36,6 +37,7 @@ declare const _default: {
36
37
  ipc_player_no_album_permission: string;
37
38
  ipc_player_authorize_cancel_text: string;
38
39
  ipc_player_authorize_confirm_text: string;
40
+ ipc_player_error_record_tip: string;
39
41
  };
40
42
  };
41
43
  export default _default;
@@ -16,7 +16,8 @@ export default {
16
16
  ipc_player_no_record_permission: 'The microphone permission is not enabled. Please go to the app settings to enable it first.',
17
17
  ipc_player_no_album_permission: 'You currently do not have access to the album or storage. Please enable this permission in the settings.',
18
18
  ipc_player_authorize_cancel_text: 'Cancel',
19
- ipc_player_authorize_confirm_text: 'Go to Settings'
19
+ ipc_player_authorize_confirm_text: 'Go to Settings',
20
+ ipc_player_error_record_tip: 'The recording has failed, please try again later.'
20
21
  },
21
22
  zh: {
22
23
  ipc_player_resolution_HD: '高清',
@@ -35,6 +36,7 @@ export default {
35
36
  ipc_player_no_record_permission: '您当前没有 麦克风 的访问权限, 请在设置中打开此权限',
36
37
  ipc_player_no_album_permission: '您当前没有 相册/存储 的访问权限, 请在设置中打开此权限',
37
38
  ipc_player_authorize_cancel_text: '取消',
38
- ipc_player_authorize_confirm_text: '去设置'
39
+ ipc_player_authorize_confirm_text: '去设置',
40
+ ipc_player_error_record_tip: '录制出错了,请稍后再试'
39
41
  }
40
42
  };
@@ -1,9 +1,9 @@
1
1
  import { createBattery } from './battery';
2
- import { createBatteryFull } from './batteryFull';
2
+ import { createBattery as createBatteryFull } from './batteryFull';
3
3
  import { useBattery } from '../../hooks';
4
4
  export const Battery = createBattery({
5
- useBattery // todo
5
+ useBattery
6
6
  });
7
7
  export const BatteryFull = createBatteryFull({
8
- useBattery // todo
8
+ useBattery
9
9
  });
@@ -9,5 +9,5 @@ type Props = ComponentConfigProps & {
9
9
  className?: string;
10
10
  };
11
11
  type CreateBattery = (deps: Depend) => React.FunctionComponent<Props>;
12
- export declare const createBatteryFull: CreateBattery;
12
+ export declare const createBattery: CreateBattery;
13
13
  export {};
@@ -1,13 +1,13 @@
1
- import React from 'react';
1
+ import React, { useMemo } from 'react';
2
2
  import { View, Text } from '@ray-js/ray';
3
3
  import clsx from 'clsx';
4
4
  import { useStore } from '../../ctx/store';
5
5
  import './battery.less';
6
- export const createBatteryFull = _ref => {
6
+ export const createBattery = _ref => {
7
7
  let {
8
8
  useBattery
9
9
  } = _ref;
10
- return props => {
10
+ return /*#__PURE__*/React.memo(props => {
11
11
  const {
12
12
  className,
13
13
  devId
@@ -21,6 +21,16 @@ export const createBatteryFull = _ref => {
21
21
  batteryValue,
22
22
  batteryCharging
23
23
  } = useBattery(devId);
24
+ const batteryColor = useMemo(() => {
25
+ if (!batteryValue) return '#eb3223';
26
+ if (batteryValue >= 60) {
27
+ return '#5cc83b';
28
+ }
29
+ if (batteryValue >= 30) {
30
+ return '#f8cd46';
31
+ }
32
+ return '#eb3223';
33
+ }, [batteryValue]);
24
34
  if (batteryValue === undefined || screenType === 'vertical') {
25
35
  return null;
26
36
  }
@@ -28,7 +38,9 @@ export const createBatteryFull = _ref => {
28
38
  className: clsx(className)
29
39
  }, /*#__PURE__*/React.createElement(View, {
30
40
  className: "ipc-player-plugin-battery"
31
- }, /*#__PURE__*/React.createElement(View, {
41
+ }, batteryCharging ? /*#__PURE__*/React.createElement(View, {
42
+ className: "icon-panel icon-panel-charging ipc-player-plugin-battery-charging"
43
+ }) : /*#__PURE__*/React.createElement(View, {
32
44
  className: "ipc-player-plugin-battery-border"
33
45
  }, /*#__PURE__*/React.createElement(View, {
34
46
  className: "ipc-player-plugin-battery-border-1"
@@ -36,11 +48,12 @@ export const createBatteryFull = _ref => {
36
48
  className: "ipc-player-plugin-battery-value-wrap"
37
49
  }, /*#__PURE__*/React.createElement(View, {
38
50
  style: {
39
- width: `${batteryValue}%`
51
+ width: `${batteryValue}%`,
52
+ backgroundColor: batteryColor
40
53
  },
41
54
  className: "ipc-player-plugin-battery-value-value"
42
55
  }))), /*#__PURE__*/React.createElement(Text, {
43
56
  className: "ipc-player-plugin-battery-text"
44
57
  }, batteryValue, "%")));
45
- };
58
+ });
46
59
  };
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
+ import { FullTravelRouteControlProps } from './fullTravelRouteControl';
2
3
  import './fullScreen.less';
3
4
  import type { ComponentConfigProps } from '../../interface';
4
5
  type Props = ComponentConfigProps & {
5
6
  className?: string;
6
7
  hideHorizontalMenu?: boolean;
7
- };
8
+ } & Pick<FullTravelRouteControlProps, 'throttleTime'>;
8
9
  export declare function FullScreen(props: Props): React.JSX.Element | null;
9
10
  export {};
@@ -17,6 +17,10 @@
17
17
  }
18
18
 
19
19
  .ipc-player-plugin-full-screen-voice {
20
+ display: flex;
21
+ flex-direction: column;
22
+ align-items: flex-end;
23
+ justify-content: center;
20
24
  transform: translate(0, 0);
21
25
  transition: transform ease-in 0.3s;
22
26
  &.ipc-player-plugin-full-screen-voice-hide {
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import React from 'react';
5
5
  import type { ComponentConfigProps } from '../../interface';
6
- type Props = ComponentConfigProps;
7
- export declare function FullTravelRouteControl(props: Props): React.JSX.Element;
8
- export {};
6
+ export type FullTravelRouteControlProps = ComponentConfigProps & {
7
+ throttleTime?: number;
8
+ };
9
+ export declare function FullTravelRouteControl(props: FullTravelRouteControlProps): React.JSX.Element;
@@ -6,7 +6,7 @@ import React, { useEffect, useContext, useState, useRef } from 'react';
6
6
  import { View } from '@ray-js/ray';
7
7
  import clsx from 'clsx';
8
8
  import RectDirectionControl from '@ray-js/direction-control';
9
- import { useDebounceFn, useMemoizedFn } from 'ahooks';
9
+ import { useThrottleFn, useMemoizedFn } from 'ahooks';
10
10
  import { UIEventContext } from '../../ui/context';
11
11
  import { useDpState } from '../../hooks';
12
12
  import { useComponentHideState } from '../../ui/hooks';
@@ -14,6 +14,9 @@ import { pauseTimeToHideAllComponent, startTimeToHideAllComponent } from '../../
14
14
  import { DIRECTION_CONTROL_DP_CODE } from './constant';
15
15
  import { useStore } from '../../ctx/store';
16
16
  export function FullTravelRouteControl(props) {
17
+ const {
18
+ throttleTime = 300
19
+ } = props;
17
20
  const [shouldHide] = useComponentHideState();
18
21
  const [isPtzActive, setIsPtzActive] = useState(false);
19
22
  const {
@@ -25,11 +28,14 @@ export function FullTravelRouteControl(props) {
25
28
  } = useStore({
26
29
  brandColor: props.brandColor
27
30
  });
31
+ const timerRef = useRef();
32
+ const [touching, setTouching] = useState(false);
28
33
  const [state, _, sendDp] = useDpState({
29
34
  devId: props.devId,
30
35
  dpCodes: [DIRECTION_CONTROL_DP_CODE],
31
36
  listenDpChange: true
32
37
  });
38
+ console.log('touching', touching);
33
39
  const onPtzControlShow = useMemoizedFn(() => {
34
40
  setIsPtzActive(true);
35
41
  });
@@ -44,39 +50,57 @@ export function FullTravelRouteControl(props) {
44
50
  event.off('ptzControlHide', onPtzControlHide);
45
51
  };
46
52
  }, []);
47
- const handTouchEnd = () => {
48
- event.emit(startTimeToHideAllComponent);
49
- sendDpValue('-1');
53
+ const pauseTimeToHideAllComponentFn = () => {
54
+ if (timerRef.current) {
55
+ clearTimeout(timerRef.current);
56
+ }
57
+ // @ts-ignore
58
+ timerRef.current = setTimeout(() => {
59
+ event.emit(pauseTimeToHideAllComponent);
60
+ }, 300);
50
61
  };
51
62
  const {
52
63
  run: sendDpValue
53
- } = useDebounceFn(value => {
64
+ } = useThrottleFn(value => {
54
65
  if (value === prevRotate.current) return;
55
66
  sendDp({
56
67
  [DIRECTION_CONTROL_DP_CODE]: value
57
68
  });
58
69
  prevRotate.current = value;
59
70
  }, {
60
- wait: 50,
61
- leading: false,
62
- trailing: false
71
+ wait: throttleTime,
72
+ leading: true,
73
+ trailing: true
63
74
  });
64
75
  return /*#__PURE__*/React.createElement(View, {
65
76
  className: clsx('ipc-player-plugin-full-screen-voice', {
66
77
  'ipc-player-plugin-full-screen-voice-hide': shouldHide || isPtzActive
67
- })
78
+ }),
79
+ style: {
80
+ width: touching ? '100vw' : 'auto',
81
+ height: touching ? '100vh' : 'auto',
82
+ backgroundColor: 'transparent'
83
+ }
68
84
  }, /*#__PURE__*/React.createElement(RectDirectionControl, {
69
85
  className: "ipc-plugin-full-travel-route-control",
70
86
  value: 0,
71
87
  onTouchStart: value => {
88
+ setTouching(true);
72
89
  sendDpValue(String(value));
73
90
  },
74
91
  onTouchMove: value => {
75
- event.emit(pauseTimeToHideAllComponent);
92
+ setTouching(true);
93
+ pauseTimeToHideAllComponentFn();
76
94
  sendDpValue(String(value));
77
95
  },
78
- onTouchEnd: handTouchEnd,
79
- onMoveNonIntersection: handTouchEnd,
96
+ onTouchEnd: () => {
97
+ event.emit(startTimeToHideAllComponent);
98
+ setTouching(false);
99
+ sendDpValue('-1');
100
+ },
101
+ onMoveNonIntersection: () => {
102
+ sendDpValue('-1');
103
+ },
80
104
  showArcOnTouchInEdgeProximity: true,
81
105
  arcEdgeProximityColor: brandColor,
82
106
  touchDistanceThreshold: 50
@@ -82,7 +82,8 @@ export function RecordVideo(props) {
82
82
  setRecording,
83
83
  setRecordingDisabled,
84
84
  devId,
85
- className
85
+ className,
86
+ toast
86
87
  } = props;
87
88
  const {
88
89
  recording,
@@ -260,10 +261,15 @@ export function RecordVideo(props) {
260
261
  } catch (err) {
261
262
  console.log('录制失败', err);
262
263
  if ((err === null || err === void 0 ? void 0 : err.errorCode) === 7) {
263
- ty.showToast({
264
- icon: 'none',
264
+ toast({
265
265
  title: Strings.getLang('ipc_player_require_record_permission')
266
266
  });
267
+ } else {
268
+ const errObj = err.innerError || err || {};
269
+ const errMsg = errObj.errorMsg || Strings.getLang('ipc_player_error_record_tip');
270
+ toast({
271
+ title: errMsg
272
+ });
267
273
  }
268
274
  setState({
269
275
  showTimer: false
@@ -60,10 +60,8 @@ export const Resolution = props => {
60
60
  }, /*#__PURE__*/React.createElement(View, {
61
61
  className: clsx('ipc-player-plugin-resolution', {
62
62
  'ipc-player-plugin-resolution-full': screenType === 'full'
63
- }),
64
- onClick: onResolution
63
+ })
65
64
  }, /*#__PURE__*/React.createElement(Text, {
66
- className: "resolutionText",
67
- onClick: onResolution
65
+ className: "resolutionText"
68
66
  }, Strings.getLang(`ipc_player_resolution_${resolution}`))));
69
67
  };
@@ -131,25 +131,51 @@ export function Screenshot(props) {
131
131
  });
132
132
  },
133
133
  fail: () => {
134
- showModal({
135
- title: '',
136
- content: Strings.getLang('ipc_player_no_album_permission'),
137
- cancelText: Strings.getLang('ipc_player_authorize_cancel_text'),
138
- confirmText: Strings.getLang('ipc_player_authorize_confirm_text'),
139
- isShowGlobal: true,
140
- success: res => {
141
- if (res.confirm) {
142
- const {
143
- platform
144
- } = getSystemInfoSync();
145
- console.log(platform, 'platform');
146
- openAppSystemSettingPage({
147
- scope: 'App-Settings',
148
- success: () => {
149
- console.log('跳转成功');
134
+ ty.authorize({
135
+ scope: 'scope.writePhotosAlbum',
136
+ success: () => {
137
+ IPCPlayerContext.snapshot({
138
+ saveToAlbum,
139
+ // 保存到 IPC 相册
140
+ success: res => {
141
+ console.log(res, 'res');
142
+ setState({
143
+ showShot: true,
144
+ shotUrl: res.tempImagePath
145
+ });
146
+ },
147
+ fail: err => {
148
+ console.log(err, 'err');
149
+ const errObj = err.innerError || err || {};
150
+ const errMsg = errObj.errorMsg || Strings.getLang('ipc_player_error_screenshot_error_tip');
151
+ toast({
152
+ title: errMsg
153
+ });
154
+ }
155
+ });
156
+ },
157
+ fail: () => {
158
+ showModal({
159
+ title: '',
160
+ content: Strings.getLang('ipc_player_no_album_permission'),
161
+ cancelText: Strings.getLang('ipc_player_authorize_cancel_text'),
162
+ confirmText: Strings.getLang('ipc_player_authorize_confirm_text'),
163
+ isShowGlobal: true,
164
+ success: res => {
165
+ if (res.confirm) {
166
+ const {
167
+ platform
168
+ } = getSystemInfoSync();
169
+ console.log(platform, 'platform');
170
+ openAppSystemSettingPage({
171
+ scope: 'App-Settings',
172
+ success: () => {
173
+ console.log('跳转成功');
174
+ }
175
+ });
150
176
  }
151
- });
152
- }
177
+ }
178
+ });
153
179
  }
154
180
  });
155
181
  }
@@ -16,7 +16,10 @@ const BottomLeftContent = _ref => {
16
16
  });
17
17
  const [shouldHide] = useComponentHideState();
18
18
  return /*#__PURE__*/React.createElement(CoverView, {
19
- className: clsx('ipc-player-bottom-left-content-wrap')
19
+ className: clsx('ipc-player-bottom-left-content-wrap'),
20
+ style: {
21
+ paddingRight: screenType === 'vertical' ? '0' : '50px'
22
+ }
20
23
  }, /*#__PURE__*/React.createElement(View, {
21
24
  style: {
22
25
  paddingBottom: screenType === 'vertical' ? '14px' : '32px',
@@ -16,7 +16,10 @@ const BottomRightContent = _ref => {
16
16
  });
17
17
  const [shouldHide] = useComponentHideState();
18
18
  return /*#__PURE__*/React.createElement(CoverView, {
19
- className: clsx('ipc-player-bottom-right-content-wrap')
19
+ className: clsx('ipc-player-bottom-right-content-wrap'),
20
+ style: {
21
+ paddingLeft: screenType === 'vertical' ? '10px' : '0'
22
+ }
20
23
  }, /*#__PURE__*/React.createElement(View, {
21
24
  style: {
22
25
  paddingBottom: screenType === 'vertical' ? '14px' : '32px',
@@ -16,7 +16,10 @@ const TopLeftContent = _ref => {
16
16
  });
17
17
  const [shouldHide] = useComponentHideState();
18
18
  return /*#__PURE__*/React.createElement(CoverView, {
19
- className: clsx('ipc-player-top-left-content-wrap')
19
+ className: clsx('ipc-player-top-left-content-wrap'),
20
+ style: {
21
+ paddingRight: screenType === 'vertical' ? '0' : '20px'
22
+ }
20
23
  }, /*#__PURE__*/React.createElement(View, {
21
24
  style: {
22
25
  paddingTop: screenType === 'vertical' ? '12px' : '16px',
@@ -144,7 +144,11 @@ export const getEnumRangeIsValid = async (devId, dpCode, rangValue) => {
144
144
  export function hasDpCode(devId, code) {
145
145
  return new Promise((resolve, reject) => {
146
146
  getDeviceInfo(devId).then(res => {
147
- resolve(res.dpCodes[code] !== undefined);
147
+ const {
148
+ schema = []
149
+ } = res || {};
150
+ const target = schema.find(item => item.code === code);
151
+ resolve(!!target);
148
152
  }, err => reject(err));
149
153
  });
150
154
  }
@@ -3,5 +3,6 @@ type Ctx = ReturnType<UseCtx>;
3
3
  export declare function initPlayerPlugins(ctx: Ctx, options: {
4
4
  verticalResolutionCustomClick?: boolean;
5
5
  hideHorizontalMenu?: boolean;
6
+ throttleTime?: number;
6
7
  }): Promise<void>;
7
8
  export {};
@@ -18,7 +18,8 @@ export async function initPlayerPlugins(ctx, options) {
18
18
  const fullScreenIndex = newDefaultBottomRightContent.findIndex(item => item.id === 'FullScreen');
19
19
  if (fullScreenIndex !== -1) {
20
20
  newDefaultBottomRightContent[fullScreenIndex].initProps = {
21
- hideHorizontalMenu: options.hideHorizontalMenu
21
+ hideHorizontalMenu: options.hideHorizontalMenu,
22
+ throttleTime: options.throttleTime
22
23
  };
23
24
  }
24
25
  ctx.addContent('bottomRight', newDefaultBottomRightContent);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/ipc-player-integration",
3
- "version": "0.0.1-beta-51",
3
+ "version": "0.0.1-beta-53",
4
4
  "description": "IPC 播放器功能集成",
5
5
  "main": "lib/index",
6
6
  "files": [