@cloud-app-dev/vidc 3.0.33 → 3.0.35

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.
@@ -5,6 +5,8 @@ interface ICustomRenderSelectProps extends SelectProps {
5
5
  children?: React.ReactNode;
6
6
  value: any;
7
7
  customRender: (value: any) => JSX.Element;
8
+ onChange: (value: any) => void;
9
+ selectAotoClose?: boolean;
8
10
  }
9
- declare function CustomRenderSelect({ children, value, customRender, popupClassName, getPopupContainer, ...props }: ICustomRenderSelectProps): JSX.Element;
11
+ declare function CustomRenderSelect({ children, value, customRender, popupClassName, getPopupContainer, onChange, selectAotoClose, ...props }: ICustomRenderSelectProps): JSX.Element;
10
12
  export default CustomRenderSelect;
@@ -26,7 +26,10 @@ function CustomRenderSelect(_a) {
26
26
  customRender = _a.customRender,
27
27
  popupClassName = _a.popupClassName,
28
28
  getPopupContainer = _a.getPopupContainer,
29
- props = __rest(_a, ["children", "value", "customRender", "popupClassName", "getPopupContainer"]);
29
+ onChange = _a.onChange,
30
+ _a$selectAotoClose = _a.selectAotoClose,
31
+ selectAotoClose = _a$selectAotoClose === void 0 ? true : _a$selectAotoClose,
32
+ props = __rest(_a, ["children", "value", "customRender", "popupClassName", "getPopupContainer", "onChange", "selectAotoClose"]);
30
33
 
31
34
  var classname = useMemo(function () {
32
35
  return "custom-render-select-dropdown-".concat(_uuid());
@@ -52,6 +55,14 @@ function CustomRenderSelect(_a) {
52
55
  return set(false);
53
56
  }, getDoms, ['click']);
54
57
 
58
+ var onSelectChange = function onSelectChange(v) {
59
+ onChange && onChange(v);
60
+
61
+ if (selectAotoClose) {
62
+ set(false);
63
+ }
64
+ };
65
+
55
66
  return /*#__PURE__*/React.createElement("div", {
56
67
  className: "custom-render-select",
57
68
  ref: domRef
@@ -61,7 +72,8 @@ function CustomRenderSelect(_a) {
61
72
  getPopupContainer: getPopupContainer ? getPopupContainer : function () {
62
73
  return domRef.current.parentElement.parentElement;
63
74
  },
64
- open: open
75
+ open: open,
76
+ onChange: onSelectChange
65
77
  }), children), /*#__PURE__*/React.createElement("div", {
66
78
  className: "custom-render-box",
67
79
  onClick: toggle
@@ -4,7 +4,13 @@ export default function DisableMark(_ref) {
4
4
  var children = _ref.children,
5
5
  disabled = _ref.disabled,
6
6
  width = _ref.width;
7
- return /*#__PURE__*/React.createElement(React.Fragment, null, disabled ? /*#__PURE__*/React.createElement("div", {
7
+ return /*#__PURE__*/React.createElement("div", {
8
+ style: {
9
+ width: '100%',
10
+ height: 'max-content',
11
+ position: 'relative'
12
+ }
13
+ }, disabled ? /*#__PURE__*/React.createElement("div", {
8
14
  className: "disable-mark",
9
15
  style: {
10
16
  width: width
@@ -20,7 +20,7 @@ export declare const playUnload: (video: HTMLVideoElement, flv?: Flvjs.Player, h
20
20
  * 获取播放文件类型
21
21
  * @param {*} url
22
22
  */
23
- export declare function getVideoType(url: string): "flv" | "native" | "m3u8";
23
+ export declare function getVideoType(url: string): "flv" | "native" | "hls";
24
24
  export declare function timeStamp(second: number): string;
25
25
  export declare function getRandom(): string;
26
26
  export declare function tryCatch(fn: () => void | Promise<any>): Promise<void>;
package/es/Player/util.js CHANGED
@@ -110,7 +110,7 @@ export function getVideoType(url) {
110
110
  return 'native';
111
111
  }
112
112
 
113
- return url.indexOf('.flv') > -1 ? 'flv' : url.indexOf('.m3u8') > -1 ? 'm3u8' : 'native';
113
+ return url.indexOf('.flv') > -1 ? 'flv' : url.indexOf('.m3u8') > -1 ? 'hls' : 'native';
114
114
  }
115
115
  export function timeStamp(second) {
116
116
  // 转换为式分秒
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ interface IRatePick {
3
+ onChange: (rate: number) => void;
4
+ }
5
+ declare function RatePick({ onChange }: IRatePick): JSX.Element;
6
+ export default RatePick;
@@ -0,0 +1,59 @@
1
+ import "antd/lib/select/style";
2
+ import _Select from "antd/lib/select";
3
+ import _useUpdateEffect from "ahooks/es/useUpdateEffect";
4
+
5
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
6
+
7
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8
+
9
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
10
+
11
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
12
+
13
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
14
+
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+
17
+ import React, { useState } from 'react';
18
+ import CustomRenderSelect from '../CustomRenderSelect';
19
+
20
+ function RatePick(_ref) {
21
+ var onChange = _ref.onChange;
22
+
23
+ var _useState = useState({
24
+ rate: 1
25
+ }),
26
+ _useState2 = _slicedToArray(_useState, 2),
27
+ state = _useState2[0],
28
+ setState = _useState2[1];
29
+
30
+ _useUpdateEffect(function () {
31
+ return onChange(state.rate);
32
+ }, []);
33
+
34
+ return /*#__PURE__*/React.createElement(CustomRenderSelect, {
35
+ value: state.rate,
36
+ popupClassName: "rate-select-dropdown ",
37
+ customRender: function customRender() {
38
+ return /*#__PURE__*/React.createElement("span", {
39
+ className: "select-current-rate-item"
40
+ }, "\u500D\u901F x".concat(state.rate));
41
+ },
42
+ onChange: function onChange(v) {
43
+ return setState({
44
+ rate: v
45
+ });
46
+ },
47
+ placement: "topLeft"
48
+ }, /*#__PURE__*/React.createElement(_Select.Option, {
49
+ value: 2
50
+ }, "x2"), /*#__PURE__*/React.createElement(_Select.Option, {
51
+ value: 1.5
52
+ }, "x1.5"), /*#__PURE__*/React.createElement(_Select.Option, {
53
+ value: 1
54
+ }, "x1"), /*#__PURE__*/React.createElement(_Select.Option, {
55
+ value: 0.5
56
+ }, "x0.5"));
57
+ }
58
+
59
+ export default RatePick;
@@ -22,6 +22,7 @@ import TimeSelect from './TimeSelect';
22
22
  import TimeMode from './TimeMode';
23
23
  import useFullscreen from '../useFullscreen';
24
24
  import Volume from '../Player/contraller_bar/volume';
25
+ import RatePick from './RatePick';
25
26
 
26
27
  function RecordTools(_ref) {
27
28
  var containerRef = _ref.containerRef,
@@ -73,6 +74,11 @@ function RecordTools(_ref) {
73
74
  snapshot === null || snapshot === void 0 ? void 0 : snapshot(player === null || player === void 0 ? void 0 : player.api.snapshot());
74
75
  };
75
76
 
77
+ var ratechange = function ratechange(value) {
78
+ var player = getPlayerItem();
79
+ player === null || player === void 0 ? void 0 : player.api.setPlaybackRate(value);
80
+ };
81
+
76
82
  var player = getPlayerItem();
77
83
 
78
84
  _useUpdateEffect(function () {
@@ -137,7 +143,9 @@ function RecordTools(_ref) {
137
143
  color: 'var(--primary)'
138
144
  } : null,
139
145
  title: "\u9010\u5E27\u64AD\u653E"
140
- })), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
146
+ })), /*#__PURE__*/React.createElement(RatePick, {
147
+ onChange: ratechange
148
+ }), oneWinExtTools), /*#__PURE__*/React.createElement("div", {
141
149
  className: "player-tools-mid"
142
150
  }, /*#__PURE__*/React.createElement("div", {
143
151
  className: "player-tools-item",
@@ -43,7 +43,7 @@
43
43
  }
44
44
  .split-screen-player-wrapper .player-tools {
45
45
  height: 42px;
46
- background-color: var(--gray12);
46
+ background-color: #242c3d;
47
47
  padding: 0 10px;
48
48
  display: flex;
49
49
  align-items: center;
@@ -151,3 +151,16 @@
151
151
  .custom-select-dropdown .cloudapp-select-item {
152
152
  font-size: var(--fs-small);
153
153
  }
154
+ .select-current-rate-item {
155
+ color: var(--gray1);
156
+ font-size: 12px;
157
+ border: 1px solid var(--gray1);
158
+ padding: 2px 0;
159
+ display: inline-block;
160
+ width: 64px;
161
+ border-radius: 2px;
162
+ cursor: pointer;
163
+ text-align: center;
164
+ position: relative;
165
+ top: 4px;
166
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "@cloud-app-dev/vidc",
4
4
  "description": "Video Image Data Componennts",
5
- "version": "3.0.33",
5
+ "version": "3.0.35",
6
6
  "scripts": {
7
7
  "start": "dumi dev",
8
8
  "docs:build": "dumi build",