@ray-js/ray-ipc-player 0.0.13-beta-1

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 (46) hide show
  1. package/README.md +107 -0
  2. package/lib/constant.android.js +1 -0
  3. package/lib/constant.d.ts +23 -0
  4. package/lib/constant.ios.js +1 -0
  5. package/lib/constant.js +28 -0
  6. package/lib/constant.tuya.js +28 -0
  7. package/lib/constant.web.js +28 -0
  8. package/lib/constant.wechat.js +28 -0
  9. package/lib/i18n/index.android.js +1 -0
  10. package/lib/i18n/index.d.ts +3 -0
  11. package/lib/i18n/index.ios.js +1 -0
  12. package/lib/i18n/index.js +4 -0
  13. package/lib/i18n/index.tuya.js +4 -0
  14. package/lib/i18n/index.web.js +4 -0
  15. package/lib/i18n/index.wechat.js +4 -0
  16. package/lib/i18n/strings.android.js +1 -0
  17. package/lib/i18n/strings.d.ts +1521 -0
  18. package/lib/i18n/strings.ios.js +1 -0
  19. package/lib/i18n/strings.js +1520 -0
  20. package/lib/i18n/strings.json +1569 -0
  21. package/lib/i18n/strings.tuya.js +1520 -0
  22. package/lib/i18n/strings.web.js +1520 -0
  23. package/lib/i18n/strings.wechat.js +1520 -0
  24. package/lib/index.android.js +1 -0
  25. package/lib/index.config.android.js +1 -0
  26. package/lib/index.config.ios.js +1 -0
  27. package/lib/index.config.js +4 -0
  28. package/lib/index.config.tuya.js +4 -0
  29. package/lib/index.config.web.js +4 -0
  30. package/lib/index.config.wechat.js +4 -0
  31. package/lib/index.d.ts +3 -0
  32. package/lib/index.ios.js +1 -0
  33. package/lib/index.js +497 -0
  34. package/lib/index.module.less +127 -0
  35. package/lib/index.tuya.js +497 -0
  36. package/lib/index.web.js +497 -0
  37. package/lib/index.wechat.js +497 -0
  38. package/lib/typings/index.d.ts +153 -0
  39. package/lib/utils.android.js +1 -0
  40. package/lib/utils.d.ts +1 -0
  41. package/lib/utils.ios.js +1 -0
  42. package/lib/utils.js +19 -0
  43. package/lib/utils.tuya.js +19 -0
  44. package/lib/utils.web.js +19 -0
  45. package/lib/utils.wechat.js +19 -0
  46. package/package.json +87 -0
@@ -0,0 +1,127 @@
1
+ .player {
2
+ width: 100%;
3
+ height: 100%;
4
+ }
5
+
6
+ .ipc_player {
7
+ width: 100%;
8
+ height: 100%;
9
+ position: relative;
10
+ }
11
+
12
+ .load_box {
13
+ color: #ffffff;
14
+ font-size: 0.3rem;
15
+ }
16
+
17
+ .bg_center {
18
+ position: absolute;
19
+ top: 0;
20
+ width: 100%;
21
+ height: 100%;
22
+ display: flex;
23
+ flex-direction: column;
24
+ justify-content: center;
25
+ align-items: center;
26
+ background: var(--video-bg);
27
+ }
28
+
29
+ .state_label {
30
+ text-align: center;
31
+ font-size: 0.28rem;
32
+ color: rgba(255, 255, 255, 0.5);
33
+ }
34
+
35
+ :root {
36
+ --video-bg: #000000;
37
+ }
38
+
39
+ :root[theme='dark'] {
40
+ --video-bg: rgba(255, 255, 255, 0.1);
41
+ }
42
+
43
+ .load_icon {
44
+ display: block;
45
+ height: 0.38rem;
46
+ width: 0.38rem;
47
+ vertical-align: middle;
48
+ animation: spin 1s linear 0s infinite;
49
+ background: #ffffff;
50
+ -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGJSURBVHgBxVfBccIwEFzCJ0+e+aEO4hKulJRAKkAlpAPSAZMKTH75ARXgVAD55Ud0I2s42YotD7a0MzsctmytbiWfNMc40IaF4ZPhr+EFmXBt8GS4MVRIjGsHowTNMQ5mhkdYWxaGj+IeW7aq408kBhm+o52dLazQ5FCw80WK2ecSw9DwxZTNBmPNkT7sYOcR1f+V4Y/hFzJBw8+MQkaU6LAoJQh+VggZIbPyhowg+OUgK84Qk/YB+XAQcZFTyLeIs2akEvGChWjcvNLIBBYid1NLpIMsfBcWUokLCunwLOLKde6sOSMdvOXrLso9A2F6EBofNLdqPkSjNabHi4h38gYhXSFS6NkKpCrPchpsQg0UfKVTWLRG5MZoNaGYpgjd90A5gZimiG3MQ/zF26N9hFQYDkJ7YAcMOE5wwy3Cx0eKeJ4CAtwiCIqY9bxQI2wN1yce2RG3WrWEzVrxT2evuHNbqBA+PsayxMg1TNWCThGdcxsePUW+u9eaLlFF/etsYIsqWMsqDMQfYUyw07Tf+LgAAAAASUVORK5CYII=');
51
+ -webkit-mask-size: cover;
52
+ -webkit-mask-repeat: no-repeat;
53
+ }
54
+
55
+ .load_des {
56
+ margin-top: 0.34rem;
57
+ }
58
+
59
+ @keyframes spin {
60
+ 0% {
61
+ transform: rotate(0deg);
62
+ }
63
+ 100% {
64
+ transform: rotate(360deg);
65
+ }
66
+ }
67
+
68
+ .hide {
69
+ display: none !important;
70
+ }
71
+
72
+ @font-face {
73
+ font-family: 'iconfont';
74
+ src: url('data:font/ttf;charset=utf-8;base64,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MjY1ESEyNj0BNCYjIRE0JisBIgYVEWsJDQ0JAWoNCSoJDQFqCQ0NCf6WDQkqCQ0Bqw0JKgkN/pYJDQ0JAWoNCSoJDQFqCQ0NCf6WAAABAVUAVQKrAqsADQAAAQcGIiY1ETQ2Mh8BFhQCnfsNJRsbJQ37DgFg/Q4bEwH6ExsO/Q0mAAAAAAAAEgDeAAEAAAAAAAAAEwAoAAEAAAAAAAEACABOAAEAAAAAAAIABwBnAAEAAAAAAAMACACBAAEAAAAAAAQACACcAAEAAAAAAAUACwC9AAEAAAAAAAYACADbAAEAAAAAAAoAKwE8AAEAAAAAAAsAEwGQAAMAAQQJAAAAJgAAAAMAAQQJAAEAEAA8AAMAAQQJAAIADgBXAAMAAQQJAAMAEABvAAMAAQQJAAQAEACKAAMAAQQJAAUAFgClAAMAAQQJAAYAEADJAAMAAQQJAAoAVgDkAAMAAQQJAAsAJgFoAEMAcgBlAGEAdABlAGQAIABiAHkAIABpAGMAbwBuAGYAbwBuAHQAAENyZWF0ZWQgYnkgaWNvbmZvbnQAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAFIAZQBnAHUAbABhAHIAAFJlZ3VsYXIAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAFYAZQByAHMAaQBvAG4AIAAxAC4AMAAAVmVyc2lvbiAxLjAAAGkAYwBvAG4AZgBvAG4AdAAAaWNvbmZvbnQAAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AAEdlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC4AAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAGh0dHA6Ly9mb250ZWxsby5jb20AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAAAAAQACAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQhiaWFvcWluZwdjYW9rb25nCmR1b2x1eXVsYW4EYS0yeAVjdW93dQZmYW5nZGEHZ2VuZ2R1bwRhLTF4Bmd1YW5iaQtnb25nZ2Vtb3NoaQRhLTN4DGhvdXRhaWJvZmFuZwdodWlmYW5nCGppZXBpbmcxCGt1YW5waW5nBmx1cGluZwlodWlmYW5nLTEHbWFucGluZwhqaWVwaW5nMgZzaG91eWUHc2hhbmdsYQRyaXFpDGx1eGlhbmd6aG9uZwdqaW5neWluB3N1b3hpYW8MbGllYmlhb21vc2hpBXRpc2hpCXRvbmd6aGktMQl4aWFuZ2NlLTEHeGlhbmdjZQV5dXlpbgd5YW9rb25nB3Rvbmd6aGkHbG9hZGluZwh5aW5saWFuZwl5dW5jdW5jaHUGeGlhemFpBXhpYWxhDXl1bnNoYW5nY2h1YW4HZ2FvcWluZwdkaWFuaHVhBGppYW4DamlhCWZhbmd4aWFuZwAAAAAB//8AAgABAAAADAAAABYAAAACAAEAAwAuAAEABAAAAAIAAAAAAAAAAQAAAADVpCcIAAAAAN8HtEAAAAAA3we0QA==') format('truetype');
75
+ font-weight: normal;
76
+ font-style: normal;
77
+ font-display: swap;
78
+ }
79
+
80
+ .iconfont {
81
+ font-family: "iconfont" !important;
82
+ font-size: 0.44rem;
83
+ font-style: normal;
84
+ -webkit-font-smoothing: antialiased;
85
+ -moz-osx-font-smoothing: grayscale;
86
+ margin-bottom: 0.3rem;
87
+ }
88
+
89
+ .icon_tishi:before {
90
+ content: "\e642";
91
+ color: #fff;
92
+ }
93
+
94
+ .msg {
95
+ max-width: 60%;
96
+ }
97
+
98
+ .msg, .retry, .device_sleep, .re_wake_camera {
99
+ font-size: 0.25rem;
100
+ display: inline-block;
101
+ color: #fff;
102
+ }
103
+
104
+ .retry, .re_wake_camera {
105
+ color: #5583F5;
106
+ }
107
+
108
+ .device_sleep, .re_wake_camera {
109
+ width: 100%;
110
+ }
111
+
112
+ .re_wake_camera {
113
+ margin-top: 0.05rem;
114
+ text-decoration: underline;
115
+ }
116
+
117
+ .ellipsis {
118
+ white-space: nowrap;
119
+ overflow: hidden;
120
+ text-overflow: ellipsis;
121
+ }
122
+
123
+ .err_msg {
124
+ display: flex;
125
+ justify-content: center;
126
+ width: 100%;
127
+ }
@@ -0,0 +1,497 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
+ import "core-js/modules/es.object.to-string.js";
4
+ import "core-js/modules/es.promise.js";
5
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
6
+ import React, { useEffect, useRef, useCallback } from 'react';
7
+ import { useImmer } from 'use-immer';
8
+ import { IpcPlayer, View, Text, CoverView } from '@ray-js/components';
9
+ import cx from 'classnames';
10
+ import { usePageEvent } from 'ray';
11
+ import locals from './i18n';
12
+ import Styles from './index.module.less';
13
+ import { IpcFailCode } from './constant';
14
+ import { putDpData } from './utils';
15
+
16
+ var Player = function (props) {
17
+ var _props$updateLayout = props.updateLayout,
18
+ updateLayout = _props$updateLayout === void 0 ? '' : _props$updateLayout,
19
+ _props$devId = props.devId,
20
+ devId = _props$devId === void 0 ? '' : _props$devId,
21
+ _props$devName = props.devName,
22
+ devName = _props$devName === void 0 ? '' : _props$devName,
23
+ onChangeStreamStatus = props.onChangeStreamStatus,
24
+ onPlayerTap = props.onPlayerTap,
25
+ onInitPreview = props.onInitPreview,
26
+ _props$defaultMute = props.defaultMute,
27
+ defaultMute = _props$defaultMute === void 0 ? true : _props$defaultMute,
28
+ _props$onlineStatus = props.onlineStatus,
29
+ onlineStatus = _props$onlineStatus === void 0 ? true : _props$onlineStatus,
30
+ _props$loadDes = props.loadDes,
31
+ loadDes = _props$loadDes === void 0 ? '' : _props$loadDes,
32
+ _props$rotateZ = props.rotateZ,
33
+ rotateZ = _props$rotateZ === void 0 ? 0 : _props$rotateZ,
34
+ _props$scalable = props.scalable,
35
+ scalable = _props$scalable === void 0 ? true : _props$scalable,
36
+ _props$scaleMultiple = props.scaleMultiple,
37
+ scaleMultiple = _props$scaleMultiple === void 0 ? 0 : _props$scaleMultiple,
38
+ _props$ptzControllabl = props.ptzControllable,
39
+ ptzControllable = _props$ptzControllabl === void 0 ? true : _props$ptzControllabl,
40
+ _props$isOnPlayerPage = props.isOnPlayerPage,
41
+ isOnPlayerPage = _props$isOnPlayerPage === void 0 ? true : _props$isOnPlayerPage,
42
+ _props$clarity = props.clarity,
43
+ clarity = _props$clarity === void 0 ? 'normal' : _props$clarity,
44
+ _props$soundMode = props.soundMode,
45
+ soundMode = _props$soundMode === void 0 ? 'speaker' : _props$soundMode,
46
+ _props$orientation = props.orientation,
47
+ orientation = _props$orientation === void 0 ? 'vertical' : _props$orientation,
48
+ onCtx = props.onCtx,
49
+ _props$borderRadius = props.borderRadius,
50
+ borderRadius = _props$borderRadius === void 0 ? 0 : _props$borderRadius,
51
+ _props$bgColor = props.bgColor,
52
+ bgColor = _props$bgColor === void 0 ? '#000000' : _props$bgColor,
53
+ _props$borderStyle = props.borderStyle,
54
+ borderStyle = _props$borderStyle === void 0 ? 'solid' : _props$borderStyle,
55
+ _props$borderColor = props.borderColor,
56
+ borderColor = _props$borderColor === void 0 ? '' : _props$borderColor,
57
+ _props$borderWidth = props.borderWidth,
58
+ borderWidth = _props$borderWidth === void 0 ? 0 : _props$borderWidth,
59
+ _props$privateState = props.privateState,
60
+ privateState = _props$privateState === void 0 ? false : _props$privateState;
61
+
62
+ var _useImmer = useImmer({
63
+ connectState: false,
64
+ // 连接状态
65
+ loadingState: false,
66
+ // 加载状态
67
+ errorState: false,
68
+ // 异常状态
69
+ errorMsg: '',
70
+ // 异常信息
71
+ updateLy: '',
72
+ devlineState: true,
73
+ initLy: false
74
+ }),
75
+ _useImmer2 = _slicedToArray(_useImmer, 2),
76
+ playState = _useImmer2[0],
77
+ setPlayState = _useImmer2[1];
78
+
79
+ var ipcCtx = useRef(null); // ipc实例
80
+
81
+ var retryCount = useRef(0); // 重试次数
82
+
83
+ var muteRef = useRef(defaultMute); // 静音
84
+
85
+ usePageEvent('onShow', useCallback(function () {
86
+ // console.log('show');
87
+ if (ipcCtx.current && playState.connectState) {
88
+ startPreview('');
89
+ }
90
+ }, [playState.connectState]));
91
+ usePageEvent('onHide', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
92
+ return _regeneratorRuntime.wrap(function (_context) {
93
+ while (1) {
94
+ switch (_context.prev = _context.next) {
95
+ case 0:
96
+ // console.log('hide');
97
+ setPlayState(function (d) {
98
+ d.loadingState = true;
99
+ });
100
+ _context.next = 3;
101
+ return getCurMute();
102
+
103
+ case 3:
104
+ stopPreview();
105
+
106
+ case 4:
107
+ case "end":
108
+ return _context.stop();
109
+ }
110
+ }
111
+ }, _callee);
112
+ }))); // 隐私模式
113
+
114
+ useEffect(function () {
115
+ setPlayState(function (d) {
116
+ d.errorState = privateState;
117
+ });
118
+
119
+ if (!privateState) {
120
+ retry();
121
+ }
122
+ }, [privateState]);
123
+ useEffect(function () {
124
+ muteRef.current = defaultMute;
125
+ }, [defaultMute]);
126
+ useEffect(function () {
127
+ setPlayState(function (d) {
128
+ d.updateLy = updateLayout;
129
+ });
130
+ }, [updateLayout]); // 设备离线
131
+
132
+ useEffect(function () {
133
+ setPlayState(function (d) {
134
+ d.devlineState = onlineStatus;
135
+ });
136
+
137
+ if (!onlineStatus) {
138
+ setPlayState(function (d) {
139
+ d.errorState = true;
140
+ d.errorMsg = locals.getLang('ipc_player_no_line');
141
+ });
142
+ } else if (playState.initLy) {
143
+ retry();
144
+ }
145
+ }, [onlineStatus, playState.initLy]);
146
+ useEffect(function () {
147
+ if (!isOnPlayerPage) {
148
+ disconnect();
149
+ }
150
+ }, [isOnPlayerPage]); // 重试
151
+
152
+ var _retry = /*#__PURE__*/function () {
153
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
154
+ return _regeneratorRuntime.wrap(function (_context2) {
155
+ while (1) {
156
+ switch (_context2.prev = _context2.next) {
157
+ case 0:
158
+ setPlayState(function (d) {
159
+ d.connectState = false;
160
+ d.errorMsg = '';
161
+ d.errorState = false;
162
+ });
163
+ _context2.t0 = playState.connectState;
164
+
165
+ if (!_context2.t0) {
166
+ _context2.next = 5;
167
+ break;
168
+ }
169
+
170
+ _context2.next = 5;
171
+ return disconnect();
172
+
173
+ case 5:
174
+ createConnect();
175
+
176
+ case 6:
177
+ case "end":
178
+ return _context2.stop();
179
+ }
180
+ }
181
+ }, _callee2);
182
+ }));
183
+
184
+ return function () {
185
+ return _ref2.apply(this, arguments);
186
+ };
187
+ }();
188
+
189
+ var retry = useCallback(function () {
190
+ // console.log('retry:', muteRef.current);
191
+ !privateState && _retry();
192
+ }, [playState.connectState, privateState]); // 创建ipc实例
193
+
194
+ var createIpcCtx = function (id) {
195
+ var _ty;
196
+
197
+ // @ts-ignore
198
+ ipcCtx.current = (_ty = ty) === null || _ty === void 0 ? void 0 : _ty.createIpcPlayerContext(id); // console.log('创建实例:', devId);
199
+
200
+ onCtx && onCtx({
201
+ ctx: ipcCtx.current,
202
+ retry: retry
203
+ });
204
+ };
205
+
206
+ useEffect(function () {
207
+ onlineStatus && createIpcCtx(devId);
208
+ return function () {
209
+ disconnect();
210
+ ipcCtx.current = null;
211
+ };
212
+ }, [devId, onlineStatus]); // 建立连接
213
+
214
+ var createConnect = function (params) {
215
+ var _ipcCtx$current;
216
+
217
+ // console.log('建立连接:', devId);
218
+ setPlayState(function (d) {
219
+ d.loadingState = true;
220
+ });
221
+ (_ipcCtx$current = ipcCtx.current) === null || _ipcCtx$current === void 0 ? void 0 : _ipcCtx$current.connect({
222
+ success: function success() {
223
+ // console.log('建立连接成功:', devId);
224
+ setPlayState(function (d) {
225
+ d.connectState = true;
226
+ d.errorState = false;
227
+ d.errorMsg = '';
228
+ });
229
+ onChangeStreamStatus && onChangeStreamStatus(1001);
230
+ startPreview(params);
231
+ },
232
+ fail: function fail() {
233
+ // console.log('建立连接失败:', devId);
234
+ setPlayState(function (d) {
235
+ d.connectState = false;
236
+ d.errorState = true;
237
+ d.errorMsg = locals.getLang('ipc_player_connect_fail');
238
+ d.loadingState = false;
239
+ });
240
+ onChangeStreamStatus && onChangeStreamStatus(-1001);
241
+ }
242
+ });
243
+ }; // 视图层准备就绪,开始建立连接
244
+
245
+
246
+ // 开启预览
247
+ var startPreview = function (params) {
248
+ var _ipcCtx$current2;
249
+
250
+ (_ipcCtx$current2 = ipcCtx.current) === null || _ipcCtx$current2 === void 0 ? void 0 : _ipcCtx$current2.startPreview({
251
+ success: function success() {
252
+ // console.log('开启预览:', devId);
253
+ setPlayState(function (d) {
254
+ d.loadingState = false;
255
+ d.errorState = false;
256
+ d.errorMsg = '';
257
+ });
258
+ params && onInitPreview && onInitPreview(devId);
259
+ onChangeStreamStatus && onChangeStreamStatus(1002);
260
+ },
261
+ fail: function fail() {
262
+ // console.log('开启失败:', devId);
263
+ setPlayState(function (d) {
264
+ d.errorState = true;
265
+ d.loadingState = false;
266
+ d.errorMsg = locals.getLang('ipc_player_preview_fail');
267
+ });
268
+ onChangeStreamStatus && onChangeStreamStatus(-1002);
269
+ },
270
+ complete: function complete() {
271
+ // console.log('startPreview:', muteRef.current);
272
+ setMuted(muteRef.current);
273
+ }
274
+ });
275
+ }; // 暂停预览
276
+
277
+
278
+ var stopPreview = function () {
279
+ var _ipcCtx$current3;
280
+
281
+ (_ipcCtx$current3 = ipcCtx.current) === null || _ipcCtx$current3 === void 0 ? void 0 : _ipcCtx$current3.stopPreview({
282
+ success: function success() {
283
+ return null;
284
+ },
285
+ fail: function fail() {
286
+ return null;
287
+ },
288
+ complete: function complete() {
289
+ return setMuted(true);
290
+ }
291
+ });
292
+ }; // 设置静音
293
+
294
+
295
+ var setMuted = function (val) {
296
+ var _ipcCtx$current4;
297
+
298
+ (_ipcCtx$current4 = ipcCtx.current) === null || _ipcCtx$current4 === void 0 ? void 0 : _ipcCtx$current4.setMuted({
299
+ mute: val,
300
+ success: function success() {// console.log('设置声音成功', val);
301
+ },
302
+ fail: function fail() {// console.log('设置声音失败');
303
+ }
304
+ });
305
+ }; // 获取当前是否静音
306
+
307
+
308
+ var getCurMute = function () {
309
+ return new Promise(function (resolve, reject) {
310
+ var _ipcCtx$current5;
311
+
312
+ (_ipcCtx$current5 = ipcCtx.current) === null || _ipcCtx$current5 === void 0 ? void 0 : _ipcCtx$current5.isMuted({
313
+ success: function success(res) {
314
+ muteRef.current = res;
315
+ },
316
+ fail: function fail(e) {
317
+ reject(e); // console.log(e);
318
+ },
319
+ complete: function complete(d) {
320
+ resolve(d);
321
+ }
322
+ });
323
+ });
324
+ }; // 异常事件
325
+
326
+
327
+ var onError = useCallback(function (e) {
328
+ var _e$detail;
329
+
330
+ if (playState.errorState) {
331
+ return;
332
+ } // console.error('发生错误:', e);
333
+
334
+
335
+ var type = e === null || e === void 0 ? void 0 : (_e$detail = e.detail) === null || _e$detail === void 0 ? void 0 : _e$detail.errCode;
336
+
337
+ if (IpcFailCode[type]) {
338
+ onChangeStreamStatus && onChangeStreamStatus(type);
339
+ setPlayState(function (d) {
340
+ d.loadingState = false;
341
+ d.errorState = true;
342
+ d.errorMsg = locals.getLang(IpcFailCode[type]);
343
+ d.connectState = false;
344
+ });
345
+ }
346
+ }, [playState.errorState]); // 连接状态发生变化
347
+
348
+ // 断开连接
349
+ var disconnect = function () {
350
+ return new Promise(function (resolve, reject) {
351
+ var _ipcCtx$current6;
352
+
353
+ (_ipcCtx$current6 = ipcCtx.current) === null || _ipcCtx$current6 === void 0 ? void 0 : _ipcCtx$current6.disconnect({
354
+ success: function success(res) {
355
+ // console.log('断开连接成功:', devId);
356
+ resolve(res);
357
+ setPlayState(function (d) {
358
+ d.connectState = false;
359
+ });
360
+ onChangeStreamStatus && onChangeStreamStatus(1009);
361
+ },
362
+ fail: function fail(e) {
363
+ // console.log('断开连接失败:', devId);
364
+ reject(e);
365
+ onChangeStreamStatus && onChangeStreamStatus(-1009);
366
+ }
367
+ });
368
+ });
369
+ };
370
+
371
+ // 关闭隐私模式,重新拉流
372
+ var handleReWakeCamera = /*#__PURE__*/function () {
373
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
374
+ return _regeneratorRuntime.wrap(function (_context3) {
375
+ while (1) {
376
+ switch (_context3.prev = _context3.next) {
377
+ case 0:
378
+ _context3.next = 2;
379
+ return putDpData({
380
+ 105: false
381
+ }, devId);
382
+
383
+ case 2:
384
+ case "end":
385
+ return _context3.stop();
386
+ }
387
+ }
388
+ }, _callee3);
389
+ }));
390
+
391
+ return function () {
392
+ return _ref3.apply(this, arguments);
393
+ };
394
+ }();
395
+
396
+ return /*#__PURE__*/React.createElement(View, {
397
+ className: Styles.ipc_player
398
+ }, isOnPlayerPage && /*#__PURE__*/React.createElement(IpcPlayer, {
399
+ className: Styles.player,
400
+ onVideotap: function handlePlayerClick() {
401
+ // console.log("videoTap:", devId);
402
+ onPlayerTap && onPlayerTap(devId);
403
+ },
404
+ onInitdone: function initdone() {
405
+ // console.log('视图层准备就绪:', devId);
406
+ setPlayState(function (d) {
407
+ d.updateLy = Math.random();
408
+ d.initLy = true;
409
+ });
410
+ },
411
+ onError: onError,
412
+ onConnectchange: function connectchange(e) {
413
+ var _e$detail2;
414
+
415
+ // console.log('连接状态发生变化', e);
416
+ var code = e === null || e === void 0 ? void 0 : (_e$detail2 = e.detail) === null || _e$detail2 === void 0 ? void 0 : _e$detail2.state;
417
+ onChangeStreamStatus && onChangeStreamStatus(code === 0 ? 1001 : -1001);
418
+
419
+ if (code === 0) {
420
+ setPlayState(function (d) {
421
+ d.connectState = true;
422
+ });
423
+ } else if ((code === -3 || code === -105) && retryCount.current < 1) {
424
+ // 连接超时或鉴权失败重试一次
425
+ retryCount.current++;
426
+ retry();
427
+ } else {
428
+ setPlayState(function (d) {
429
+ d.connectState = false;
430
+ d.loadingState = false;
431
+ d.errorState = true;
432
+ d.errorMsg = locals.getLang(IpcFailCode[-1001]);
433
+ });
434
+ }
435
+ },
436
+ deviceId: devId,
437
+ autoPauseIfNavigate: false,
438
+ autoPauseIfOpenNative: false,
439
+ muted: defaultMute,
440
+ objectFit: "fillCrop",
441
+ clarity: clarity,
442
+ soundMode: soundMode,
443
+ orientation: orientation,
444
+ rotateZ: rotateZ,
445
+ scalable: scalable,
446
+ scaleMultiple: scaleMultiple,
447
+ ptzControllable: ptzControllable,
448
+ borderRadius: borderRadius,
449
+ borderStyle: borderStyle,
450
+ borderColor: borderColor,
451
+ borderWidth: borderWidth,
452
+ updateLayout: playState.updateLy,
453
+ backgroundColor: bgColor
454
+ }), /*#__PURE__*/React.createElement(View, {
455
+ style: {
456
+ borderRadius: "".concat(borderRadius)
457
+ },
458
+ className: cx(Styles.load_box, Styles.bg_center, !playState.loadingState && Styles.hide)
459
+ }, /*#__PURE__*/React.createElement(View, {
460
+ className: Styles.load_icon
461
+ }), /*#__PURE__*/React.createElement(View, {
462
+ className: Styles.load_des
463
+ }, loadDes || locals.getLang('get_video_stream'))), /*#__PURE__*/React.createElement(CoverView, {
464
+ style: {
465
+ borderRadius: "".concat(borderRadius)
466
+ },
467
+ className: cx(Styles.bg_center, Styles.state_label, !playState.errorState && Styles.hide)
468
+ }, privateState ? /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(View, {
469
+ className: Styles.device_sleep
470
+ }, locals.getLang('device_sleep')), /*#__PURE__*/React.createElement(View, {
471
+ className: Styles.re_wake_camera // @ts-ignore
472
+ ,
473
+ onClick: handleReWakeCamera
474
+ }, locals.getLang('re_wake_camera'))) : /*#__PURE__*/React.createElement(View, {
475
+ style: {
476
+ width: '95%',
477
+ textAlign: 'center'
478
+ }
479
+ }, /*#__PURE__*/React.createElement(View, {
480
+ className: cx(Styles.iconfont, Styles.icon_tishi, !playState.devlineState && Styles.hide)
481
+ }), /*#__PURE__*/React.createElement(View, {
482
+ className: Styles.err_msg
483
+ }, /*#__PURE__*/React.createElement(View, {
484
+ className: cx(Styles.msg, Styles.ellipsis)
485
+ }, playState.errorMsg), /*#__PURE__*/React.createElement(Text, {
486
+ style: {
487
+ color: '#fff'
488
+ },
489
+ className: !playState.devlineState && Styles.hide
490
+ }, "\uFF0C"), /*#__PURE__*/React.createElement(View // @ts-ignore
491
+ , {
492
+ onClick: retry,
493
+ className: cx(Styles.retry, !playState.devlineState && Styles.hide)
494
+ }, locals.getLang('ipc_player_retry'))))));
495
+ };
496
+
497
+ export default Player;