@cloud-app-dev/vidc 4.0.20 → 4.0.22

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 (234) hide show
  1. package/es/AppContext/Sync.js +42 -0
  2. package/es/AppContext/index.js +141 -0
  3. package/es/AppContext/interface.d.ts +41 -0
  4. package/es/AppContext/static.js +9 -0
  5. package/es/Auth/index.js +14 -0
  6. package/es/AutoExit/index.js +19 -0
  7. package/es/CheckGroupFixed/demo.js +22 -0
  8. package/es/CheckGroupFixed/index.js +140 -0
  9. package/es/CheckGroupFixed/index.less +56 -0
  10. package/es/Config/index.js +77 -0
  11. package/es/Config/interface.d.ts +65 -0
  12. package/es/Config/utils.js +33 -0
  13. package/es/ConfigContext/index.js +21 -0
  14. package/es/CustomRenderSelect/index.js +72 -0
  15. package/es/CustomRenderSelect/index.less +25 -0
  16. package/es/DBTools/index.js +336 -0
  17. package/es/DisableMark/index.js +19 -0
  18. package/es/DisableMark/index.less +9 -0
  19. package/es/DomMove/demo.js +16 -0
  20. package/es/DomMove/index.js +139 -0
  21. package/es/DomMove/utils.js +32 -0
  22. package/es/Drag/DragAndDropItem.js +133 -0
  23. package/es/Drag/DropItem.js +50 -0
  24. package/es/Drag/index.d.ts +9 -0
  25. package/es/Drag/index.js +7 -0
  26. package/es/Drag/interface.d.ts +16 -0
  27. package/es/DynamicGridList/Demo.js +77 -0
  28. package/es/DynamicGridList/index.js +67 -0
  29. package/es/DynamicList/demo.js +44 -0
  30. package/es/DynamicList/index.js +86 -0
  31. package/es/DynamicList/index.less +17 -0
  32. package/es/DynamicList/interface.d.ts +19 -0
  33. package/es/DynamicList/utils.js +6 -0
  34. package/es/ErrorFallback/index.js +31 -0
  35. package/es/ErrorFallback/inerface.d.ts +48 -0
  36. package/es/EventTools/index.js +12 -0
  37. package/es/FrontendPlayer/index.js +2 -0
  38. package/es/FullScreen/index.js +33 -0
  39. package/es/FullScreen/index.less +18 -0
  40. package/es/GridList/Demo.js +80 -0
  41. package/es/GridList/data.js +609 -0
  42. package/es/GridList/hook.js +270 -0
  43. package/es/GridList/index.js +44 -0
  44. package/es/GridList/index.less +8 -0
  45. package/es/GridList/interface.d.ts +59 -0
  46. package/es/GridList/utils.js +42 -0
  47. package/es/HightLevel/index.js +18 -0
  48. package/es/HightLevel/index.less +3 -0
  49. package/es/IconFont/index.js +54 -0
  50. package/es/ImageView/index.js +51 -0
  51. package/es/ImageView/index.less +11 -0
  52. package/es/InstanceHistory/index.js +7 -0
  53. package/es/LabelPlayer/111.png +0 -0
  54. package/es/LabelPlayer/demo.js +115 -0
  55. package/es/LabelPlayer/index.js +160 -0
  56. package/es/LabelPlayer/index.less +24 -0
  57. package/es/LabelValue/index.js +27 -0
  58. package/es/LabelValue/index.less +23 -0
  59. package/es/List/demo.js +23 -0
  60. package/es/List/index.js +28 -0
  61. package/es/List/index.less +20 -0
  62. package/es/ListWithSizeAnimate/demo.js +98 -0
  63. package/es/ListWithSizeAnimate/index.js +85 -0
  64. package/es/ListWithSizeAnimate/index.less +23 -0
  65. package/es/LoaderScript/index.js +34 -0
  66. package/es/LoaderScript/utils.js +179 -0
  67. package/es/Map/AMap.d.ts +7109 -0
  68. package/es/Map/BasicMap/AMapInstance.js +98 -0
  69. package/es/Map/BasicMap/LeafletInstance.js +111 -0
  70. package/es/Map/BasicMap/index.js +90 -0
  71. package/es/Map/BasicMap/index.less +29 -0
  72. package/es/Map/ClusterLayer/demo.js +18 -0
  73. package/es/Map/ClusterLayer/hook.js +123 -0
  74. package/es/Map/ClusterLayer/index.js +28 -0
  75. package/es/Map/ClusterLayer/index.less +29 -0
  76. package/es/Map/ClusterLayer/props.d.ts +8 -0
  77. package/es/Map/Config/index.js +48 -0
  78. package/es/Map/Config/utils.js +65 -0
  79. package/es/Map/Context/index.js +51 -0
  80. package/es/Map/FindPio/index.js +13 -0
  81. package/es/Map/FindPio/index.less +7 -0
  82. package/es/Map/InfoWindow/MakerLikeWindow.js +108 -0
  83. package/es/Map/InfoWindow/demo.js +70 -0
  84. package/es/Map/InfoWindow/index.js +62 -0
  85. package/es/Map/LevelCenter/DragMarker/index.js +42 -0
  86. package/es/Map/LevelCenter/demo.js +38 -0
  87. package/es/Map/LevelCenter/index.js +66 -0
  88. package/es/Map/LoaderMap/index.js +62 -0
  89. package/es/Map/MapDrawSelect/demo.js +71 -0
  90. package/es/Map/MapDrawSelect/index.js +56 -0
  91. package/es/Map/MouseTool/index.js +40 -0
  92. package/es/Map/MouseTool/useMouseTools.js +83 -0
  93. package/es/Map/ResetTools/index.js +57 -0
  94. package/es/Map/ResetTools/index.less +39 -0
  95. package/es/Map/SinglePoint/demo.js +14 -0
  96. package/es/Map/SinglePoint/index.js +52 -0
  97. package/es/Map/SinglePoint/index.less +41 -0
  98. package/es/Map/hook/useMapEvent.js +19 -0
  99. package/es/Map/hook/useMapType.js +12 -0
  100. package/es/Map/icon.js +10 -0
  101. package/es/Map/index.js +25 -0
  102. package/es/Map/interface.d.ts +74 -0
  103. package/es/Map/points.js +1 -0
  104. package/es/Map/useMarker/index.js +71 -0
  105. package/es/Map/withMap/index.js +10 -0
  106. package/es/Picture/component/DefaultRects/RectInfo.js +80 -0
  107. package/es/Picture/component/DefaultRects/index.js +52 -0
  108. package/es/Picture/component/DefaultRects/index.less +211 -0
  109. package/es/Picture/component/DefaultRects/utils.js +11 -0
  110. package/es/Picture/component/DrawRect/index.js +46 -0
  111. package/es/Picture/component/DrawRect/index.less +8 -0
  112. package/es/Picture/component/RectMenu/index.js +76 -0
  113. package/es/Picture/component/RectMenu/index.less +36 -0
  114. package/es/Picture/component/RectMenu/utils.js +19 -0
  115. package/es/Picture/component/Tools/index.js +73 -0
  116. package/es/Picture/component/Tools/index.less +49 -0
  117. package/es/Picture/component/WheelScale/index.js +27 -0
  118. package/es/Picture/demo.js +105 -0
  119. package/es/Picture/index.js +341 -0
  120. package/es/Picture/index.less +20 -0
  121. package/es/Picture/interface.d.ts +196 -0
  122. package/es/Picture/loadCaptureRectImage.js +99 -0
  123. package/es/Picture/useDraw.js +103 -0
  124. package/es/Picture/utils.js +143 -0
  125. package/es/Player/api/index.js +309 -0
  126. package/es/Player/context.js +24 -0
  127. package/es/Player/contraller_bar/bar.js +20 -0
  128. package/es/Player/contraller_bar/contraller_event.js +48 -0
  129. package/es/Player/contraller_bar/index.js +27 -0
  130. package/es/Player/contraller_bar/left_bar.js +83 -0
  131. package/es/Player/contraller_bar/right_bar.js +32 -0
  132. package/es/Player/contraller_bar/time.js +19 -0
  133. package/es/Player/contraller_bar/useBarStatus.js +43 -0
  134. package/es/Player/contraller_bar/volume.js +62 -0
  135. package/es/Player/demo.js +266 -0
  136. package/es/Player/empty.js +4 -0
  137. package/es/Player/event/errorEvent.js +88 -0
  138. package/es/Player/event/eventName.js +29 -0
  139. package/es/Player/event/index.js +205 -0
  140. package/es/Player/fps_play.js +83 -0
  141. package/es/Player/frontend_player.js +64 -0
  142. package/es/Player/frontend_timeline.js +132 -0
  143. package/es/Player/iconfont.js +16 -0
  144. package/es/Player/index.js +2 -0
  145. package/es/Player/live_heart.js +45 -0
  146. package/es/Player/message.js +133 -0
  147. package/es/Player/player.d.ts +233 -0
  148. package/es/Player/segment_player.js +228 -0
  149. package/es/Player/segment_timeline.js +173 -0
  150. package/es/Player/single_player.js +262 -0
  151. package/es/Player/style/bar.less +43 -0
  152. package/es/Player/style/iconfont.js +43 -0
  153. package/es/Player/style/index.less +34 -0
  154. package/es/Player/style/message.less +56 -0
  155. package/es/Player/style/slider.less +106 -0
  156. package/es/Player/style/timeline.less +117 -0
  157. package/es/Player/style/volume.less +24 -0
  158. package/es/Player/timeline.js +95 -0
  159. package/es/Player/util.js +189 -0
  160. package/es/PlayerExt/demo.js +154 -0
  161. package/es/PlayerExt/index.js +188 -0
  162. package/es/PlayerExt/index.less +10 -0
  163. package/es/Progress/index.d.ts +9 -0
  164. package/es/Progress/index.js +53 -0
  165. package/es/Progress/index.less +21 -0
  166. package/es/ROI/demo.js +16 -0
  167. package/es/ROI/index.js +54 -0
  168. package/es/ROI/index.less +33 -0
  169. package/es/RefDrawer/Footer.js +22 -0
  170. package/es/RefDrawer/demo.js +18 -0
  171. package/es/RefDrawer/index.js +71 -0
  172. package/es/RefModal/demo.js +18 -0
  173. package/es/RefModal/index.js +70 -0
  174. package/es/ScreenPlayer/Live.js +212 -0
  175. package/es/ScreenPlayer/LiveTools.js +151 -0
  176. package/es/ScreenPlayer/PlayerWithExt.js +231 -0
  177. package/es/ScreenPlayer/RatePick.js +29 -0
  178. package/es/ScreenPlayer/Record.js +442 -0
  179. package/es/ScreenPlayer/RecordTools.js +169 -0
  180. package/es/ScreenPlayer/ScreenSelect.js +46 -0
  181. package/es/ScreenPlayer/SegmentTimeLine.js +36 -0
  182. package/es/ScreenPlayer/TimeMode.js +26 -0
  183. package/es/ScreenPlayer/TimeSelect.js +88 -0
  184. package/es/ScreenPlayer/demo.js +21 -0
  185. package/es/ScreenPlayer/demo2.js +194 -0
  186. package/es/ScreenPlayer/index.js +9 -0
  187. package/es/ScreenPlayer/index.less +335 -0
  188. package/es/ScreenPlayer/interface.d.ts +216 -0
  189. package/es/ScreenPlayer/useTimeSlider.js +456 -0
  190. package/es/ScreenPlayer/useVideoFit.js +35 -0
  191. package/es/ScreenPlayer/utils.js +85 -0
  192. package/es/SegmentPlayer/index.js +2 -0
  193. package/es/Service/http.js +133 -0
  194. package/es/Service/index.js +11 -0
  195. package/es/Service/interface.d.ts +23 -0
  196. package/es/Service/middleware.js +22 -0
  197. package/es/SocketEmitter/eventEmitter.js +88 -0
  198. package/es/SocketEmitter/index.js +125 -0
  199. package/es/SocketEmitter/interface.d.ts +4 -0
  200. package/es/TableLayout/index.js +27 -0
  201. package/es/TableLayout/index.less +4 -0
  202. package/es/ThemeAntd/demo.js +81 -0
  203. package/es/ThemeAntd/demo.less +20 -0
  204. package/es/ThemeAntd/index.js +21 -0
  205. package/es/ThemeAntd/index.less +4 -0
  206. package/es/Timeout/index.js +65 -0
  207. package/es/bigNumberTransformCN/index.js +58 -0
  208. package/es/cache/index.js +94 -0
  209. package/es/copy/index.js +9 -0
  210. package/es/core.d.ts +0 -0
  211. package/es/getThemeStyle/index.js +5 -0
  212. package/es/index.js +62 -0
  213. package/es/likeGo/index.js +31 -0
  214. package/es/likeGoSync/index.js +10 -0
  215. package/es/logger/index.js +30 -0
  216. package/es/nextTick/index.js +3 -0
  217. package/es/recorder/demo.js +181 -0
  218. package/es/recorder/index.js +992 -0
  219. package/es/submidstr/index.js +14 -0
  220. package/es/treeHelper/index.js +188 -0
  221. package/es/typings.d.ts +2 -0
  222. package/es/useDrawROI/index.js +318 -0
  223. package/es/useEventEmitterHandle/index.js +17 -0
  224. package/es/useFullscreen/demo.js +43 -0
  225. package/es/useFullscreen/index.js +76 -0
  226. package/es/useHistory/index.js +9 -0
  227. package/es/useHistory/interface.d.ts +3 -0
  228. package/es/useInfiniteScroll/index.js +102 -0
  229. package/es/useRafInterval/index.js +70 -0
  230. package/es/useSimpleState/index.js +35 -0
  231. package/es/useVirtualList/index.js +136 -0
  232. package/es/utils.js +46 -0
  233. package/es/uuid/index.js +19 -0
  234. package/package.json +2 -3
@@ -0,0 +1,335 @@
1
+ .split-screen-player-wrapper {
2
+ width: 100%;
3
+ height: 100%;
4
+ box-sizing: border-box;
5
+ user-select: none;
6
+ min-width: 600px;
7
+
8
+ .player-layout {
9
+ height: calc(100% - 88px);
10
+
11
+ .player-with-ext-layout {
12
+ display: flex;
13
+
14
+ .lm-player-ext-layout {
15
+ border: 1px solid var(--gray12);
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ &.player-current-index {
20
+ .lm-player-ext-layout {
21
+ border: 1px solid var(--primary);
22
+ }
23
+ }
24
+ }
25
+ }
26
+
27
+ &.split-screen-player-live-wrapper {
28
+ .player-layout {
29
+ height: calc(100% - 42px);
30
+ }
31
+ }
32
+
33
+ .player-tools-group {
34
+ position: relative;
35
+ height: 88px;
36
+ }
37
+
38
+ .player-record-time {
39
+ padding: 0 16px;
40
+ margin: 0 20px;
41
+ font-size: 16px;
42
+ line-height: 42px;
43
+ color: var(--gray1);
44
+ text-align: center;
45
+ background-color: var(--gray11);
46
+ }
47
+
48
+ .icon-chajian {
49
+ position: relative;
50
+ top: 1px;
51
+ left: 1px;
52
+ font-size: 22px !important;
53
+ }
54
+
55
+ .player-tools {
56
+ position: relative;
57
+ display: flex;
58
+ height: 42px;
59
+ padding: 0 10px;
60
+ background-color: #242c3d;
61
+ align-items: center;
62
+ justify-content: space-between;
63
+
64
+ .player-tools-left,
65
+ .player-tools-right {
66
+ display: grid;
67
+ width: 35%;
68
+ grid-template-columns: repeat(auto-fill, 32px);
69
+ grid-gap: 10px;
70
+ }
71
+
72
+ .player-tools-right {
73
+ display: flex;
74
+ justify-content: flex-end;
75
+ margin-right: 0;
76
+ margin-left: 4px;
77
+ }
78
+
79
+ .player-tools-mid {
80
+ display: flex;
81
+ align-items: center;
82
+ justify-self: center;
83
+ height: 100%;
84
+ }
85
+
86
+ .player-tools-item {
87
+ display: flex;
88
+ width: 32px;
89
+ height: 32px;
90
+ margin: 0;
91
+ font-size: 18px;
92
+ color: var(--gray1);
93
+ cursor: pointer;
94
+ align-items: center;
95
+ justify-content: center;
96
+
97
+ .lm-player-iconfont {
98
+ font-size: 20px;
99
+ }
100
+
101
+ &:hover {
102
+ background-color: var(--gray11);
103
+ border-radius: var(--radius1);
104
+ }
105
+ }
106
+
107
+ .select-current-screen-item {
108
+ display: flex;
109
+ width: 32px;
110
+ height: 32px;
111
+ font-size: 18px;
112
+ color: var(--gray1);
113
+ text-align: center;
114
+ cursor: pointer;
115
+ align-items: center;
116
+ justify-content: center;
117
+
118
+ .lm-player-iconfont {
119
+ font-size: 20px;
120
+ }
121
+
122
+ &:hover {
123
+ background-color: var(--gray11);
124
+ border-radius: var(--radius1);
125
+ }
126
+ }
127
+ }
128
+
129
+ // 录像
130
+ &.split-screen-player-wrapper-record {
131
+ .record-time-line {
132
+ position: relative;
133
+ width: 100%;
134
+ height: 46px;
135
+
136
+ canvas {
137
+ box-sizing: border-box;
138
+ width: 100%;
139
+ height: 100%;
140
+ cursor: pointer;
141
+ background-color: #030917;
142
+ }
143
+
144
+ .time-line-mask {
145
+ position: absolute;
146
+ top: 0;
147
+ left: 0;
148
+ z-index: 5;
149
+ width: 100%;
150
+ height: 100%;
151
+ cursor: not-allowed;
152
+ }
153
+ }
154
+ }
155
+
156
+ .ant-popover-inner-content {
157
+ padding: 4px 0;
158
+
159
+ .ant-select-item-option:hover {
160
+ background-color: var(--form-bg-dark);
161
+ }
162
+ }
163
+
164
+ /* ------------------------1分屏---------------------- */
165
+ .container1 {
166
+ display: grid;
167
+ grid-template-columns: repeat(1, 100%);
168
+ grid-template-rows: repeat(1, 100%);
169
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
170
+ place-content: center;
171
+ }
172
+
173
+ /* ------------------------4分屏---------------------- */
174
+ .container4 {
175
+ display: grid;
176
+ grid-template-columns: repeat(2, 50%);
177
+ grid-template-rows: repeat(2, 50%);
178
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
179
+ place-content: center;
180
+ }
181
+
182
+ /* ------------------------6分屏---------------------- */
183
+ .container6 {
184
+ display: grid;
185
+ grid-template-columns: repeat(3, 33.3333%);
186
+ grid-template-rows: repeat(2, 50%);
187
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
188
+ place-content: center;
189
+ }
190
+
191
+ /* -----------------------8分屏---------------------- */
192
+ .container8 {
193
+ display: grid;
194
+ grid-template-columns: repeat(24, 4.1667%);
195
+ grid-template-rows: repeat(24, 4.1667%);
196
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
197
+ place-content: center;
198
+ }
199
+
200
+ .item8-1 {
201
+ grid-column: 1 / 11;
202
+ grid-row: 1 / 13;
203
+ }
204
+
205
+ .item8-2 {
206
+ grid-column: 11 / 18;
207
+ grid-row: 1 / 9;
208
+ }
209
+
210
+ .item8-3 {
211
+ grid-column: 18 / 25;
212
+ grid-row: 1 / 9;
213
+ }
214
+
215
+ .item8-4 {
216
+ grid-column: 11 / 18;
217
+ grid-row: 9 / 17;
218
+ }
219
+
220
+ .item8-5 {
221
+ grid-column: 18 / 25;
222
+ grid-row: 9 / 17;
223
+ }
224
+
225
+ .item8-6 {
226
+ grid-column: 1 / 11;
227
+ grid-row: 13 / 25;
228
+ }
229
+
230
+ .item8-7 {
231
+ grid-column: 11 / 18;
232
+ grid-row: 17 / 25;
233
+ }
234
+
235
+ .item8-8 {
236
+ grid-column: 18 / 25;
237
+ grid-row: 17 / 25;
238
+ }
239
+
240
+ /* ------------------------9分屏---------------------- */
241
+ .container9 {
242
+ display: grid;
243
+ grid-template-columns: repeat(3, 33.3333%);
244
+ grid-template-rows: repeat(3, 33.3333%);
245
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
246
+ place-content: center;
247
+ }
248
+
249
+ /* ------------------------10分屏---------------------- */
250
+
251
+ .container10 {
252
+ display: grid;
253
+ grid-template-columns: repeat(4, 25%);
254
+ grid-template-rows: repeat(4, 25%);
255
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
256
+ place-content: center;
257
+ }
258
+
259
+ .item10-1 {
260
+ grid-column: 1 / 3;
261
+ grid-row: 1 / 3;
262
+ }
263
+
264
+ .item10-2 {
265
+ grid-column: 3 / 5;
266
+ grid-row: 1 / 3;
267
+ }
268
+
269
+ /* ------------------------13分屏---------------------- */
270
+
271
+ .container13 {
272
+ display: grid;
273
+ grid-template-columns: repeat(4, 25%);
274
+ grid-template-rows: repeat(4, 25%);
275
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
276
+ place-content: center;
277
+ }
278
+
279
+ .item13-1 {
280
+ grid-column: 1 / 3;
281
+ grid-row: 1 / 3;
282
+ }
283
+
284
+ /* ------------------------16分屏---------------------- */
285
+ .container16 {
286
+ display: grid;
287
+ grid-template-columns: repeat(4, 25%);
288
+ grid-template-rows: repeat(4, 25%);
289
+ grid-auto-flow: row dense; //排列顺序先行后列 紧密排列
290
+ place-content: center;
291
+ }
292
+ }
293
+
294
+ .player-time-select {
295
+ display: flex;
296
+ width: 190px;
297
+ justify-content: space-around;
298
+ align-items: center;
299
+ }
300
+
301
+ .@{ant-prefix}-select.time-mode-select {
302
+ font-size: var(--fs-small);
303
+ color: var(--gray1);
304
+
305
+ .cloudapp-select-selector {
306
+ background-color: transparent !important;
307
+ border-radius: var(--radius1) !important;
308
+ }
309
+
310
+ .anticon {
311
+ color: var(--gray1);
312
+ }
313
+ }
314
+
315
+ .custom-select-dropdown {
316
+ font-size: var(--fs-small);
317
+
318
+ .cloudapp-select-item {
319
+ font-size: var(--fs-small);
320
+ }
321
+ }
322
+
323
+ .select-current-rate-item {
324
+ position: relative;
325
+ top: 4px;
326
+ display: inline-block;
327
+ width: 64px;
328
+ padding: 2px 0;
329
+ font-size: 12px;
330
+ color: var(--gray1);
331
+ text-align: center;
332
+ cursor: pointer;
333
+ border: 1px solid var(--gray1);
334
+ border-radius: 2px;
335
+ }
@@ -0,0 +1,216 @@
1
+ import type React from 'react';
2
+ import type { ExportPlayerType, ISegmentType } from '../Player/player';
3
+ import type { PlayModeType } from '../PlayerExt';
4
+
5
+ export type RecordItem = {
6
+ type?: 'flv' | 'hls' | 'native';
7
+ date?: number; //视频窗口日期
8
+ endDate?: number;
9
+ cid?: string;
10
+ segments?: ISegmentType[];
11
+ url?: string;
12
+ recordType?: 1 | 2; //1云录像 2前端录像
13
+ mode?: PlayModeType;
14
+ loading?: boolean; // 录像获取状态
15
+ };
16
+
17
+ export interface IRecordPlayerProps {
18
+ /**
19
+ * 播放对象
20
+ */
21
+ list?: RecordItem[];
22
+ children?: JSX.Element;
23
+
24
+ /**
25
+ * 窗口索引变化,后续基于索引传入播放必要数据
26
+ */
27
+ onIndexChange?: (idx: number) => void;
28
+
29
+ /**
30
+ * 关闭单个窗口
31
+ */
32
+ onClose?: () => void;
33
+
34
+ /**
35
+ * 关闭所有窗口
36
+ */
37
+ onCloseAll?: () => void;
38
+ /**
39
+ * 录像下载回调
40
+ */
41
+ download?: (segments: ISegmentType[]) => void;
42
+
43
+ /**
44
+ * 截图
45
+ */
46
+ snapshot?: (base64: string) => void;
47
+
48
+ /**
49
+ * 窗口变化
50
+ */
51
+ screenChange?: (num: number) => void;
52
+
53
+ /**
54
+ * 默认窗口数量
55
+ */
56
+ defaultScreen?: 1 | 4 | 6 | 9 | 16;
57
+
58
+ /**
59
+ * 窗口数量,若有值数量将由外部控制
60
+ */
61
+ screenNum?: 1 | 4 | 6 | 9 | 16;
62
+
63
+ /**
64
+ * 默认选中窗口
65
+ * @default 0
66
+ */
67
+ defaultSelectIndex?: number;
68
+ /**
69
+ * 单窗口拓展工具条,左侧
70
+ */
71
+ oneWinExtTools?: JSX.Element;
72
+
73
+ /**
74
+ * 全局窗口工具条,右侧
75
+ */
76
+ allWinExtTools?: JSX.Element;
77
+
78
+ fpsDelay?: number;
79
+ fps?: number;
80
+
81
+ /**
82
+ * 自定义合成前端录像
83
+ */
84
+ getLocalRecordUrl?: (options: { url: URL; begin: number; end: number; screenIndex: number }) => Promise<string>;
85
+
86
+ /**
87
+ * 插件下载地址
88
+ */
89
+ pluginDownloadUrl?: string;
90
+
91
+ /**
92
+ * 轴发生变化
93
+ */
94
+ onTimeLineChange?: (time: number) => void;
95
+
96
+ /**
97
+ * 用户控制seek频率
98
+ */
99
+ seekLoading?: boolean;
100
+
101
+ /**
102
+ * 控制播放倍数数组
103
+ */
104
+ multipleList?: number[];
105
+ }
106
+
107
+ export interface IRecordPlayerState {
108
+ /**
109
+ * 窗口数量
110
+ */
111
+ screenNum: number;
112
+
113
+ /**
114
+ * 当前窗口索引
115
+ */
116
+ selectIndex: number;
117
+
118
+ /**
119
+ * 插件OR浏览器
120
+ */
121
+ modes: { [key: string]: PlayModeType };
122
+
123
+ /**
124
+ * 时间轴开始时间
125
+ */
126
+ currentTimes: { [key: string]: number };
127
+
128
+ /**
129
+ *
130
+ */
131
+ begins: { [key: string]: number };
132
+
133
+ /**
134
+ * 需要seek的时间针对当前窗口,为0时忽略
135
+ */
136
+ seekTo?: { [key: string]: number };
137
+
138
+ /**
139
+ * 录像时间轴单页绘制时长单位(hour)
140
+ */
141
+ timeMode: number;
142
+ }
143
+
144
+ export type ScreenItemLivePlayerType = {
145
+ url?: string;
146
+ type?: 'flv' | 'hls' | 'native';
147
+ mode?: PlayModeType;
148
+ cid?: string;
149
+ };
150
+
151
+ export interface ILivePlayerProps {
152
+ list?: ScreenItemLivePlayerType[];
153
+ children?: JSX.Element;
154
+
155
+ /**
156
+ * 关闭单个窗口
157
+ */
158
+ onClose?: () => void;
159
+
160
+ /**
161
+ * 关闭所有窗口
162
+ */
163
+ onCloseAll?: () => void;
164
+ /**
165
+ * 窗口索引变化,后续基于索引传入播放必要数据
166
+ */
167
+ onIndexChange?: (idx: number) => void;
168
+
169
+ /**
170
+ * 截图
171
+ */
172
+ snapshot?: (base64: string) => void;
173
+
174
+ /**
175
+ * 窗口变化
176
+ */
177
+ screenChange?: (num: number) => void;
178
+
179
+ /**
180
+ * 默认窗口数量
181
+ */
182
+ defaultScreen?: 1 | 4 | 6 | 9 | 16;
183
+
184
+ /**
185
+ * 窗口数量,若有值由外部来完全控制
186
+ */
187
+ screenNum?: 1 | 4 | 6 | 9 | 16;
188
+
189
+ /**
190
+ * 默认选中窗口
191
+ * @default 0
192
+ */
193
+ defaultSelectIndex?: number;
194
+
195
+ /**
196
+ * 单窗口拓展工具条,左侧
197
+ */
198
+ oneWinExtTools?: JSX.Element;
199
+
200
+ /**
201
+ * 全局窗口工具条,右侧
202
+ */
203
+ allWinExtTools?: JSX.Element;
204
+
205
+ pluginDownloadUrl?: string;
206
+ }
207
+
208
+ export interface ILivePlayerState {
209
+ screenNum: number;
210
+ selectIndex: number;
211
+ modes: { [key: string]: PlayModeType };
212
+ }
213
+
214
+ export const RecordPlayer: React.FC<IRecordPlayerProps>;
215
+
216
+ export type PlayItemMapType = { [key: string]: React.MutableRefObject<ExportPlayerType> };