@ray-js/ray-ipc-player 2.0.31 → 2.1.0-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.
- package/lib/components/ErrorOverlay.d.ts +28 -0
- package/lib/components/ErrorOverlay.js +293 -0
- package/lib/components/FullScreenBackButton.d.ts +8 -0
- package/lib/components/FullScreenBackButton.js +16 -0
- package/lib/components/LoadingOverlay.d.ts +9 -0
- package/lib/components/LoadingOverlay.js +27 -0
- package/lib/components/index.d.ts +3 -0
- package/lib/components/index.js +3 -0
- package/lib/hooks/index.d.ts +2 -1
- package/lib/hooks/index.js +3 -1
- package/lib/hooks/usePlayerConnection.d.ts +40 -0
- package/lib/hooks/usePlayerConnection.js +320 -0
- package/lib/hooks/usePlayerProps.d.ts +4 -0
- package/lib/hooks/usePlayerProps.js +108 -0
- package/lib/i18n/index.d.ts +16 -0
- package/lib/i18n/strings.d.ts +8 -0
- package/lib/i18n/strings.js +10 -2
- package/lib/index.js +221 -592
- package/lib/index.less +45 -3
- package/lib/svg/flowLimit.svg +1 -0
- package/lib/svg/rightArrow.svg +1 -0
- package/lib/svg/sleep.svg +1 -0
- package/lib/typings/index.d.ts +13 -1
- package/lib/utils.js +3 -2
- package/package.json +4 -3
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import "core-js/modules/es.json.stringify.js";
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { useMemoizedFn } from 'ahooks';
|
|
4
|
+
import { publishDps, showToast, performanceEvent, getCurrentPages } from '@ray-js/ray';
|
|
5
|
+
import Strings from '../i18n';
|
|
6
|
+
import { getIsConnected, getIsOnPreview, getDpIdByDpCode, ipcTTTOperatorLog } from '../utils';
|
|
7
|
+
/**
|
|
8
|
+
* 播放器连接相关逻辑的自定义 hook
|
|
9
|
+
*/
|
|
10
|
+
export const usePlayerConnection = _ref => {
|
|
11
|
+
let {
|
|
12
|
+
devId,
|
|
13
|
+
ipcCtx,
|
|
14
|
+
playState,
|
|
15
|
+
setPlayState,
|
|
16
|
+
setVideoErrCode,
|
|
17
|
+
onChangeStreamStatus,
|
|
18
|
+
onInitPreview,
|
|
19
|
+
playerRoute,
|
|
20
|
+
privateState,
|
|
21
|
+
isLowPowerDevice,
|
|
22
|
+
awakeStatus,
|
|
23
|
+
wirelessFlag,
|
|
24
|
+
setEnableWakeUpInterval,
|
|
25
|
+
setLowPrivateOutTimeFlag,
|
|
26
|
+
setMqttPrivateFlag,
|
|
27
|
+
privateLowPowerDeviceTimeOutRef,
|
|
28
|
+
privateWakeOutTimeRef,
|
|
29
|
+
firstPreviewTimeRef,
|
|
30
|
+
retryCount,
|
|
31
|
+
muteRef,
|
|
32
|
+
setMuted
|
|
33
|
+
} = _ref;
|
|
34
|
+
/**
|
|
35
|
+
* 获取当前页面路由
|
|
36
|
+
*/
|
|
37
|
+
const getPlayerRoute = useCallback(() => {
|
|
38
|
+
const pages = getCurrentPages(); // 获取当前页面栈
|
|
39
|
+
const currentPage = pages[pages.length - 1]; // 获取当前页面实例
|
|
40
|
+
return currentPage.route;
|
|
41
|
+
}, []);
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* 重试连接
|
|
45
|
+
*/
|
|
46
|
+
const _retry = useCallback(async () => {
|
|
47
|
+
console.log('调用了重试');
|
|
48
|
+
ipcTTTOperatorLog('VID: ipcCtx.isConnected');
|
|
49
|
+
const connectState = await getIsConnected(ipcCtx.current);
|
|
50
|
+
console.log('调用了重试--connectState');
|
|
51
|
+
const isOnPreview = await getIsOnPreview(ipcCtx.current);
|
|
52
|
+
console.log('调用了重试--isOnPreview');
|
|
53
|
+
setPlayState(d => {
|
|
54
|
+
d.connectState = !!connectState;
|
|
55
|
+
d.errorMsg = '';
|
|
56
|
+
d.errorState = false;
|
|
57
|
+
d.loadingState = !isOnPreview;
|
|
58
|
+
});
|
|
59
|
+
setVideoErrCode('');
|
|
60
|
+
ipcTTTOperatorLog("VID: start_create_p2p_connect");
|
|
61
|
+
ipcCtx.current && createConnect();
|
|
62
|
+
}, [ipcCtx, setPlayState, setVideoErrCode]);
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 无需关心连接状态直接发起重新连接
|
|
66
|
+
*/
|
|
67
|
+
const _reConnect = useCallback(() => {
|
|
68
|
+
console.log('不在播放器路由内, 不进行标记');
|
|
69
|
+
// 排除默认值为"",不等于播放器路由时, 不进行连接操作
|
|
70
|
+
if (playerRoute !== '' && playerRoute !== getPlayerRoute()) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
setPlayState(d => {
|
|
74
|
+
d.connectState = true;
|
|
75
|
+
d.loadingText = Strings.getLang('ipc_player_get_video_stream');
|
|
76
|
+
d.errorMsg = '';
|
|
77
|
+
d.errorState = false;
|
|
78
|
+
d.loadingState = true;
|
|
79
|
+
});
|
|
80
|
+
setVideoErrCode('');
|
|
81
|
+
ipcTTTOperatorLog("VID: start_create_p2p_connect");
|
|
82
|
+
ipcCtx.current && createConnect();
|
|
83
|
+
}, [playerRoute, getPlayerRoute, setPlayState, setVideoErrCode, ipcCtx]);
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* 关闭隐私模式,重新拉流
|
|
87
|
+
*/
|
|
88
|
+
const handleReWakeCamera = useCallback(async () => {
|
|
89
|
+
setPlayState(d => {
|
|
90
|
+
d.connectState = true;
|
|
91
|
+
d.errorMsg = '';
|
|
92
|
+
d.loadingText = Strings.getLang('ipc_player_private_open_stream');
|
|
93
|
+
d.errorState = false;
|
|
94
|
+
d.loadingState = true;
|
|
95
|
+
});
|
|
96
|
+
setVideoErrCode('');
|
|
97
|
+
const sendDpId = await getDpIdByDpCode(devId, 'basic_private');
|
|
98
|
+
if (sendDpId === -1) {
|
|
99
|
+
showToast(Strings.getLang('ipc_player_basic_private_not_exist'));
|
|
100
|
+
} else {
|
|
101
|
+
publishDps({
|
|
102
|
+
deviceId: devId,
|
|
103
|
+
dps: {
|
|
104
|
+
[sendDpId]: false
|
|
105
|
+
},
|
|
106
|
+
mode: 1,
|
|
107
|
+
pipelines: [0, 1, 2, 3, 4, 5, 6],
|
|
108
|
+
options: {},
|
|
109
|
+
success: () => {
|
|
110
|
+
console.log('下发隐私模式成功');
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}, [devId, setPlayState, setVideoErrCode]);
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* 低功耗设备关闭隐私模式,先判断设备是否唤醒,唤醒后才可下发隐私模式DP
|
|
118
|
+
*/
|
|
119
|
+
const handleReWakeCameraLowPowerDevice = useMemoizedFn(() => {
|
|
120
|
+
setVideoErrCode('');
|
|
121
|
+
setLowPrivateOutTimeFlag(false);
|
|
122
|
+
if (awakeStatus) {
|
|
123
|
+
setPlayState(d => {
|
|
124
|
+
d.connectState = true;
|
|
125
|
+
d.errorMsg = '';
|
|
126
|
+
d.loadingText = Strings.getLang('ipc_player_private_open_stream');
|
|
127
|
+
d.errorState = false;
|
|
128
|
+
d.loadingState = true;
|
|
129
|
+
});
|
|
130
|
+
// 如果值为true, 表示设备为唤醒状态,直接下发隐私模式DP
|
|
131
|
+
handleReWakeCamera();
|
|
132
|
+
} else {
|
|
133
|
+
setPlayState(d => {
|
|
134
|
+
d.connectState = true;
|
|
135
|
+
d.errorMsg = '';
|
|
136
|
+
d.loadingText = Strings.getLang('ipc_player_private_open_low_stream');
|
|
137
|
+
d.errorState = false;
|
|
138
|
+
d.loadingState = true;
|
|
139
|
+
});
|
|
140
|
+
handleReWakeCamera();
|
|
141
|
+
// 如果值为false, 表示设备为睡眠状态,需要唤醒设备
|
|
142
|
+
setMqttPrivateFlag(true);
|
|
143
|
+
setEnableWakeUpInterval(true);
|
|
144
|
+
// 2秒后停止下发唤醒, 防止频繁唤醒, 此时若Mqtt监听到1协议,也会停止下发唤醒
|
|
145
|
+
privateLowPowerDeviceTimeOutRef.current = setTimeout(() => {
|
|
146
|
+
setEnableWakeUpInterval(false);
|
|
147
|
+
// 清除定时器
|
|
148
|
+
privateLowPowerDeviceTimeOutRef.current && clearTimeout(privateLowPowerDeviceTimeOutRef.current);
|
|
149
|
+
}, 2000);
|
|
150
|
+
|
|
151
|
+
// 15 秒后若设备还是未唤醒,未监听到Mqtt消息以及唤醒Dp上报, 则提示报错
|
|
152
|
+
privateWakeOutTimeRef.current = setTimeout(() => {
|
|
153
|
+
// 清除定时器
|
|
154
|
+
privateLowPowerDeviceTimeOutRef.current && clearTimeout(privateWakeOutTimeRef.current);
|
|
155
|
+
setPlayState(d => {
|
|
156
|
+
d.connectState = false;
|
|
157
|
+
d.errorMsg = Strings.getLang('ipc_player_private_open_low_stream_fail');
|
|
158
|
+
d.errorState = true;
|
|
159
|
+
d.loadingState = false;
|
|
160
|
+
});
|
|
161
|
+
setMqttPrivateFlag(false);
|
|
162
|
+
setLowPrivateOutTimeFlag(true);
|
|
163
|
+
}, 15000);
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* 建立连接
|
|
169
|
+
*/
|
|
170
|
+
const createConnect = useMemoizedFn(async params => {
|
|
171
|
+
var _ipcCtx$current;
|
|
172
|
+
if (playerRoute !== '' && playerRoute !== getPlayerRoute()) {
|
|
173
|
+
console.log('不在播放器路由内, 不进行连接操作');
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
// 若走到连接状态,需清除低功耗15秒超时定时
|
|
177
|
+
privateLowPowerDeviceTimeOutRef.current && clearTimeout(privateWakeOutTimeRef.current);
|
|
178
|
+
setLowPrivateOutTimeFlag(false);
|
|
179
|
+
// 表示为 149 低功耗设备, 唤醒设备
|
|
180
|
+
if (isLowPowerDevice) {
|
|
181
|
+
// 下发唤醒
|
|
182
|
+
setEnableWakeUpInterval(true);
|
|
183
|
+
}
|
|
184
|
+
(_ipcCtx$current = ipcCtx.current) === null || _ipcCtx$current === void 0 || _ipcCtx$current.connect({
|
|
185
|
+
success: () => {
|
|
186
|
+
ipcTTTOperatorLog("VID: create_p2p_connect_success");
|
|
187
|
+
// 清除唤醒定时器
|
|
188
|
+
setEnableWakeUpInterval(false);
|
|
189
|
+
setPlayState(d => {
|
|
190
|
+
d.connectState = true;
|
|
191
|
+
d.loadingText = Strings.getLang('ipc_player_get_video_stream');
|
|
192
|
+
d.errorState = false;
|
|
193
|
+
d.errorMsg = '';
|
|
194
|
+
});
|
|
195
|
+
onChangeStreamStatus && onChangeStreamStatus(1001);
|
|
196
|
+
ipcTTTOperatorLog("VID: start_to_preview");
|
|
197
|
+
startPreview(params);
|
|
198
|
+
},
|
|
199
|
+
fail: () => {
|
|
200
|
+
// 清除唤醒定时器
|
|
201
|
+
setEnableWakeUpInterval(false);
|
|
202
|
+
ipcTTTOperatorLog("VID: create_p2p_connect_failure");
|
|
203
|
+
// 针对进入面板上报149状态的为true的设备直接忽略
|
|
204
|
+
if (!wirelessFlag) {
|
|
205
|
+
setPlayState(d => {
|
|
206
|
+
d.connectState = false;
|
|
207
|
+
d.errorState = true;
|
|
208
|
+
d.errorMsg = Strings.getLang('ipc_player_connect_fail');
|
|
209
|
+
d.loadingState = false;
|
|
210
|
+
});
|
|
211
|
+
onChangeStreamStatus && onChangeStreamStatus(-1001);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
/**
|
|
218
|
+
* 开启预览
|
|
219
|
+
*/
|
|
220
|
+
const startPreview = useMemoizedFn(params => {
|
|
221
|
+
var _ipcCtx$current2;
|
|
222
|
+
(_ipcCtx$current2 = ipcCtx.current) === null || _ipcCtx$current2 === void 0 || _ipcCtx$current2.startPreview({
|
|
223
|
+
success: () => {
|
|
224
|
+
ipcTTTOperatorLog('VID: start_preview_success');
|
|
225
|
+
if (typeof performanceEvent === 'function' && !firstPreviewTimeRef.current) {
|
|
226
|
+
performanceEvent({
|
|
227
|
+
launchData: '出流成功耗时',
|
|
228
|
+
success: () => {
|
|
229
|
+
firstPreviewTimeRef.current = true;
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
setPlayState(d => {
|
|
234
|
+
d.loadingState = false;
|
|
235
|
+
d.errorState = false;
|
|
236
|
+
d.errorMsg = '';
|
|
237
|
+
});
|
|
238
|
+
setMuted(muteRef.current);
|
|
239
|
+
params && onInitPreview && onInitPreview(devId);
|
|
240
|
+
onChangeStreamStatus && onChangeStreamStatus(1002);
|
|
241
|
+
},
|
|
242
|
+
fail: async e => {
|
|
243
|
+
ipcTTTOperatorLog("VID: start_preview_fail: ".concat(JSON.stringify(e)));
|
|
244
|
+
const isOnPreview = await getIsOnPreview(ipcCtx.current);
|
|
245
|
+
ipcTTTOperatorLog("VID: get_is_on_preview_status_".concat(isOnPreview));
|
|
246
|
+
if (isOnPreview || e !== null && e !== void 0 && e.errorMsg.includes('doing preview')) {
|
|
247
|
+
// 忽略重复预览异常的报错
|
|
248
|
+
setPlayState(d => {
|
|
249
|
+
d.loadingState = false;
|
|
250
|
+
d.errorState = false;
|
|
251
|
+
d.errorMsg = '';
|
|
252
|
+
});
|
|
253
|
+
setMuted(muteRef.current);
|
|
254
|
+
onChangeStreamStatus && onChangeStreamStatus(1002);
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
257
|
+
// 针对进入到面板,接收到上报为设备休眠的情况直接忽略
|
|
258
|
+
if (!wirelessFlag) {
|
|
259
|
+
setPlayState(d => {
|
|
260
|
+
d.errorState = true;
|
|
261
|
+
d.loadingState = false;
|
|
262
|
+
d.errorMsg = Strings.getLang('ipc_player_preview_fail');
|
|
263
|
+
});
|
|
264
|
+
onChangeStreamStatus && onChangeStreamStatus(-1002);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* 暂停预览
|
|
272
|
+
*/
|
|
273
|
+
const stopPreview = useCallback(() => {
|
|
274
|
+
var _ipcCtx$current3;
|
|
275
|
+
ipcTTTOperatorLog("VID: begin_to_stop_preview");
|
|
276
|
+
ipcTTTOperatorLog("VID: set_mute_is_true");
|
|
277
|
+
setMuted(true);
|
|
278
|
+
(_ipcCtx$current3 = ipcCtx.current) === null || _ipcCtx$current3 === void 0 || _ipcCtx$current3.stopPreview({
|
|
279
|
+
success: () => {
|
|
280
|
+
ipcTTTOperatorLog("VID: stop_preview_success");
|
|
281
|
+
},
|
|
282
|
+
fail: e => {
|
|
283
|
+
ipcTTTOperatorLog("VID: stop_preview_failure: ".concat(JSON.stringify(e)));
|
|
284
|
+
}
|
|
285
|
+
});
|
|
286
|
+
}, [ipcCtx, setMuted]);
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* 断开连接
|
|
290
|
+
*/
|
|
291
|
+
const disconnect = useCallback(() => {
|
|
292
|
+
return new Promise((resolve, reject) => {
|
|
293
|
+
var _ipcCtx$current4;
|
|
294
|
+
(_ipcCtx$current4 = ipcCtx.current) === null || _ipcCtx$current4 === void 0 || _ipcCtx$current4.disconnect({
|
|
295
|
+
success: res => {
|
|
296
|
+
resolve(res);
|
|
297
|
+
setPlayState(d => {
|
|
298
|
+
d.connectState = false;
|
|
299
|
+
});
|
|
300
|
+
onChangeStreamStatus && onChangeStreamStatus(1009);
|
|
301
|
+
},
|
|
302
|
+
fail: e => {
|
|
303
|
+
reject(e);
|
|
304
|
+
onChangeStreamStatus && onChangeStreamStatus(-1009);
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
}, [ipcCtx, setPlayState, onChangeStreamStatus]);
|
|
309
|
+
return {
|
|
310
|
+
_retry,
|
|
311
|
+
_reConnect,
|
|
312
|
+
createConnect,
|
|
313
|
+
startPreview,
|
|
314
|
+
stopPreview,
|
|
315
|
+
disconnect,
|
|
316
|
+
handleReWakeCamera,
|
|
317
|
+
handleReWakeCameraLowPowerDevice,
|
|
318
|
+
getPlayerRoute
|
|
319
|
+
};
|
|
320
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 处理播放器 props 解构的自定义 hook
|
|
3
|
+
*/
|
|
4
|
+
export const usePlayerProps = props => {
|
|
5
|
+
const {
|
|
6
|
+
updateLayout = '',
|
|
7
|
+
devId = '',
|
|
8
|
+
objectFit = 'contain',
|
|
9
|
+
onChangeStreamStatus,
|
|
10
|
+
onPlayerTap,
|
|
11
|
+
onZoomChange,
|
|
12
|
+
onCameraPreviewFailure,
|
|
13
|
+
onCameraNotifyWeakNetwork,
|
|
14
|
+
onInitPreview,
|
|
15
|
+
defaultMute = true,
|
|
16
|
+
onlineStatus = true,
|
|
17
|
+
loadText = '',
|
|
18
|
+
rotateZ = 0,
|
|
19
|
+
scalable = true,
|
|
20
|
+
scaleMultiple = 0,
|
|
21
|
+
ptzControllable = true,
|
|
22
|
+
clarity = 'normal',
|
|
23
|
+
ipcPlayerContext,
|
|
24
|
+
onCtx,
|
|
25
|
+
playerStyle = {
|
|
26
|
+
borderRadius: 0,
|
|
27
|
+
bgColor: '#000000',
|
|
28
|
+
borderStyle: 'solid',
|
|
29
|
+
borderColor: '',
|
|
30
|
+
borderWidth: 0
|
|
31
|
+
},
|
|
32
|
+
privateState = false,
|
|
33
|
+
extend = {},
|
|
34
|
+
brandColor = '#FF592A',
|
|
35
|
+
renderErrIcon,
|
|
36
|
+
isShare = false,
|
|
37
|
+
onPlayerContainerTap,
|
|
38
|
+
reConnect = false,
|
|
39
|
+
awakeStatus = undefined,
|
|
40
|
+
ignoreHideStopPreview = false,
|
|
41
|
+
onChangeIgnoreHideStopPreview,
|
|
42
|
+
hideSuggestedText = false,
|
|
43
|
+
hideHelpButton = false,
|
|
44
|
+
hideFeedBackButton = false,
|
|
45
|
+
playerRoute = '',
|
|
46
|
+
defaultAutoPlay = true,
|
|
47
|
+
limitFlow = false
|
|
48
|
+
} = props;
|
|
49
|
+
|
|
50
|
+
// 解构 playerStyle
|
|
51
|
+
const {
|
|
52
|
+
borderRadius,
|
|
53
|
+
bgColor,
|
|
54
|
+
borderStyle,
|
|
55
|
+
borderColor,
|
|
56
|
+
borderWidth
|
|
57
|
+
} = playerStyle;
|
|
58
|
+
|
|
59
|
+
// 计算衍生状态
|
|
60
|
+
const isLowPowerDevice = awakeStatus !== undefined;
|
|
61
|
+
return {
|
|
62
|
+
// 基础配置
|
|
63
|
+
updateLayout,
|
|
64
|
+
devId,
|
|
65
|
+
objectFit,
|
|
66
|
+
defaultMute,
|
|
67
|
+
onlineStatus,
|
|
68
|
+
loadText,
|
|
69
|
+
rotateZ,
|
|
70
|
+
scalable,
|
|
71
|
+
scaleMultiple,
|
|
72
|
+
ptzControllable,
|
|
73
|
+
clarity,
|
|
74
|
+
ipcPlayerContext,
|
|
75
|
+
privateState,
|
|
76
|
+
extend,
|
|
77
|
+
brandColor,
|
|
78
|
+
isShare,
|
|
79
|
+
reConnect,
|
|
80
|
+
awakeStatus,
|
|
81
|
+
ignoreHideStopPreview,
|
|
82
|
+
hideSuggestedText,
|
|
83
|
+
hideHelpButton,
|
|
84
|
+
hideFeedBackButton,
|
|
85
|
+
playerRoute,
|
|
86
|
+
defaultAutoPlay,
|
|
87
|
+
limitFlow,
|
|
88
|
+
// 样式相关
|
|
89
|
+
borderRadius,
|
|
90
|
+
bgColor,
|
|
91
|
+
borderStyle,
|
|
92
|
+
borderColor,
|
|
93
|
+
borderWidth,
|
|
94
|
+
// 计算属性
|
|
95
|
+
isLowPowerDevice,
|
|
96
|
+
// 回调函数
|
|
97
|
+
onChangeStreamStatus,
|
|
98
|
+
onPlayerTap,
|
|
99
|
+
onZoomChange,
|
|
100
|
+
onCameraPreviewFailure,
|
|
101
|
+
onCameraNotifyWeakNetwork,
|
|
102
|
+
onInitPreview,
|
|
103
|
+
onCtx,
|
|
104
|
+
renderErrIcon,
|
|
105
|
+
onPlayerContainerTap,
|
|
106
|
+
onChangeIgnoreHideStopPreview
|
|
107
|
+
};
|
|
108
|
+
};
|
package/lib/i18n/index.d.ts
CHANGED
|
@@ -127,6 +127,10 @@ declare const _default: kit.I18N<{
|
|
|
127
127
|
ipc_sim_err_system: string;
|
|
128
128
|
ipc_sim_err_of_traffic: string;
|
|
129
129
|
ipc_player_traffic_load_online_zero_tip: string;
|
|
130
|
+
ipc_player_traffic_load_offline_limit_tip: string;
|
|
131
|
+
ipc_player_recharge_flow_btn: string;
|
|
132
|
+
ipc_player_sleep_tip: string;
|
|
133
|
+
ipc_player_open_sleep_mode: string;
|
|
130
134
|
};
|
|
131
135
|
zh: {
|
|
132
136
|
ipc_player_get_video_stream: string;
|
|
@@ -255,6 +259,10 @@ declare const _default: kit.I18N<{
|
|
|
255
259
|
ipc_player_sim_err_system: string;
|
|
256
260
|
ipc_player_sim_err_of_traffic: string;
|
|
257
261
|
ipc_player_traffic_load_online_zero_tip: string;
|
|
262
|
+
ipc_player_traffic_load_offline_limit_tip: string;
|
|
263
|
+
ipc_player_recharge_flow_btn: string;
|
|
264
|
+
ipc_player_sleep_tip: string;
|
|
265
|
+
ipc_player_open_sleep_mode: string;
|
|
258
266
|
};
|
|
259
267
|
}, {
|
|
260
268
|
ipc_player_get_video_stream: string;
|
|
@@ -383,6 +391,10 @@ declare const _default: kit.I18N<{
|
|
|
383
391
|
ipc_sim_err_system: string;
|
|
384
392
|
ipc_sim_err_of_traffic: string;
|
|
385
393
|
ipc_player_traffic_load_online_zero_tip: string;
|
|
394
|
+
ipc_player_traffic_load_offline_limit_tip: string;
|
|
395
|
+
ipc_player_recharge_flow_btn: string;
|
|
396
|
+
ipc_player_sleep_tip: string;
|
|
397
|
+
ipc_player_open_sleep_mode: string;
|
|
386
398
|
} | {
|
|
387
399
|
ipc_player_get_video_stream: string;
|
|
388
400
|
ipc_player_private_open_stream: string;
|
|
@@ -510,5 +522,9 @@ declare const _default: kit.I18N<{
|
|
|
510
522
|
ipc_player_sim_err_system: string;
|
|
511
523
|
ipc_player_sim_err_of_traffic: string;
|
|
512
524
|
ipc_player_traffic_load_online_zero_tip: string;
|
|
525
|
+
ipc_player_traffic_load_offline_limit_tip: string;
|
|
526
|
+
ipc_player_recharge_flow_btn: string;
|
|
527
|
+
ipc_player_sleep_tip: string;
|
|
528
|
+
ipc_player_open_sleep_mode: string;
|
|
513
529
|
}>;
|
|
514
530
|
export default _default;
|
package/lib/i18n/strings.d.ts
CHANGED
|
@@ -126,6 +126,10 @@ declare const _default: {
|
|
|
126
126
|
ipc_sim_err_system: string;
|
|
127
127
|
ipc_sim_err_of_traffic: string;
|
|
128
128
|
ipc_player_traffic_load_online_zero_tip: string;
|
|
129
|
+
ipc_player_traffic_load_offline_limit_tip: string;
|
|
130
|
+
ipc_player_recharge_flow_btn: string;
|
|
131
|
+
ipc_player_sleep_tip: string;
|
|
132
|
+
ipc_player_open_sleep_mode: string;
|
|
129
133
|
};
|
|
130
134
|
zh: {
|
|
131
135
|
ipc_player_get_video_stream: string;
|
|
@@ -254,6 +258,10 @@ declare const _default: {
|
|
|
254
258
|
ipc_player_sim_err_system: string;
|
|
255
259
|
ipc_player_sim_err_of_traffic: string;
|
|
256
260
|
ipc_player_traffic_load_online_zero_tip: string;
|
|
261
|
+
ipc_player_traffic_load_offline_limit_tip: string;
|
|
262
|
+
ipc_player_recharge_flow_btn: string;
|
|
263
|
+
ipc_player_sleep_tip: string;
|
|
264
|
+
ipc_player_open_sleep_mode: string;
|
|
257
265
|
};
|
|
258
266
|
};
|
|
259
267
|
export default _default;
|
package/lib/i18n/strings.js
CHANGED
|
@@ -137,7 +137,11 @@ export default {
|
|
|
137
137
|
// 4G流量
|
|
138
138
|
ipc_sim_err_system: 'System freezes',
|
|
139
139
|
ipc_sim_err_of_traffic: 'The current device has no data, please recharge first',
|
|
140
|
-
ipc_player_traffic_load_online_zero_tip: 'Insufficient traffic, Please recharge in time'
|
|
140
|
+
ipc_player_traffic_load_online_zero_tip: 'Insufficient traffic, Please recharge in time',
|
|
141
|
+
ipc_player_traffic_load_offline_limit_tip: 'Device offline. Please top up 4G data.',
|
|
142
|
+
ipc_player_recharge_flow_btn: 'Top up',
|
|
143
|
+
ipc_player_sleep_tip: 'The device is in sleep mode',
|
|
144
|
+
ipc_player_open_sleep_mode: 'Open'
|
|
141
145
|
},
|
|
142
146
|
zh: {
|
|
143
147
|
ipc_player_get_video_stream: '正在获取视频流',
|
|
@@ -277,6 +281,10 @@ export default {
|
|
|
277
281
|
// 4G流量
|
|
278
282
|
ipc_player_sim_err_system: '系统冻结',
|
|
279
283
|
ipc_player_sim_err_of_traffic: '当前设备已无流量,请尽快充值',
|
|
280
|
-
ipc_player_traffic_load_online_zero_tip: '可用流量额度不足,已关闭视频流,请及时充值流量'
|
|
284
|
+
ipc_player_traffic_load_online_zero_tip: '可用流量额度不足,已关闭视频流,请及时充值流量',
|
|
285
|
+
ipc_player_traffic_load_offline_limit_tip: '设备已离线,请及时充值4G流量',
|
|
286
|
+
ipc_player_recharge_flow_btn: '去充值',
|
|
287
|
+
ipc_player_sleep_tip: '设备处于休眠中',
|
|
288
|
+
ipc_player_open_sleep_mode: '开启'
|
|
281
289
|
}
|
|
282
290
|
};
|