@vtx/player 1.1.0 → 1.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_controls","_icons","_livePlayer","_interopRequireDefault","_ahooks","_space","_tooltip","obj","__esModule","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","fill","channelNum","LiveControl","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onChannelChange","polling","_props$isDark","isDark","_useSetState","useSetState","expand","grid","activeIndex","channels","_useSetState2","state","setState","wrapRef","useRef","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useInterval","hasVideo","some","item","timer","setTimeout","current","clearTimeout","useImperativeHandle","load","channel","index","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","unLoad","useEffect","filter","map","handleCloseAll","handleExpand","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","concat","style","children","Space","size","align","Tooltip","title","display","FoldIcon","ExpandIcon","CloseAllIcon","Grid1x1Icon","Grid2x2Icon","Grid3x3Icon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","deviceName","channelName","_Fragment","PlayerHeader","VtxLivePlayer","url","enableAgent","captureName","showInfo","info","currentIndex","currentChannels","_default","exports"],"sources":["live-control/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, Grid1x1Icon, Grid2x2Icon, Grid3x3Icon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { useFullscreen, useInterval, useRequest, useSetState } from 'ahooks';\nimport Space from 'antd/lib/space';\n// import { Space, Tooltip } from 'antd';\nimport Tooltip from 'antd/lib/tooltip';\nconst DEFAULT_GRID = 2;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(9).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControl = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onChannelChange, polling, isDark = false } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n });\n const wrapRef = useRef(null);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n useInterval(() => {\n // 是否有视频正在播放\n const hasVideo = state.channels.some((item) => item.channelNum);\n if (polling && hasVideo) {\n setState({\n channels: DEFAULT_CHANNELS,\n });\n const timer = setTimeout(() => {\n setState({\n channels: channelRef.current,\n });\n clearTimeout(timer);\n }, 0);\n }\n }, polling);\n useImperativeHandle(ref, () => {\n return {\n load: (channel) => {\n const index = state.channels.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...state.channels];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, state.grid, state.activeIndex);\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels) => {\n let grid = 1;\n if (channels.length > 1)\n grid = 2;\n if (channels.length > 4)\n grid = 3;\n const newChannels = [];\n for (let i = 0; i < 9; i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n setState({ grid, channels: newChannels });\n },\n unLoad: (channelId) => {\n const index = state.channels.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...state.channels];\n newChannels[index] = { channelNum: '' };\n setState({ channels: newChannels });\n }\n },\n };\n });\n useEffect(() => {\n channelRef.current = state.channels;\n if (onChannelChange) {\n onChannelChange(state.channels.filter((c) => !!c.channelNum).map((c) => c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({ channels: DEFAULT_CHANNELS });\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < state.grid * state.grid; i++) {\n const element = (_jsx(GridItem, { active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: state.channels[i], onClose: () => {\n const newChannels = [...state.channels];\n newChannels[i] = { channelNum: '' };\n setState({ channels: newChannels });\n } }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: `vtx-live-control${isDark ? ' live-dark' : ''}`, ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"controls\" }, { children: [_jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(Tooltip, Object.assign({ title: state.expand ? '收起' : '展开' }, { children: _jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) })) }))) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(Tooltip, Object.assign({ title: \"\\u5168\\u90E8\\u5173\\u95ED\" }, { children: _jsx(\"div\", { children: _jsx(CloseAllIcon, { onClick: handleCloseAll }) }) })), _jsx(Tooltip, Object.assign({ title: \"1\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid1x1Icon, { active: state.grid === 1, onClick: () => setState({ grid: 1 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"4\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid2x2Icon, { active: state.grid === 2, onClick: () => setState({ grid: 2 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"9\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid3x3Icon, { active: state.grid === 3, onClick: () => setState({ grid: 3 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"\\u5168\\u5C4F\" }, { children: _jsx(\"div\", { children: isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen })) }) }))] }))] }))] })));\n});\nLiveControl.displayName = 'LiveControl';\nconst GridItem = (props) => {\n const { active, onClick, channel, onClose } = props;\n const empty = !channel.channelNum;\n const { data } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''}`, onClick: onClick }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(VtxLivePlayer, { url: data.url, enableAgent: (data === null || data === void 0 ? void 0 : data.enableAgent) || false, captureName: name, showInfo: channel.showInfo, info: channel.info }) }))] })) })));\n};\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, grid * grid);\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nexport default LiveControl;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_controls","_icons","_livePlayer","_interopRequireDefault","_ahooks","_space","_tooltip","obj","__esModule","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","fill","channelNum","LiveControl","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onChannelChange","polling","_props$isDark","isDark","_useSetState","useSetState","expand","grid","activeIndex","channels","_useSetState2","state","setState","wrapRef","useRef","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useInterval","hasVideo","some","item","timer","setTimeout","current","clearTimeout","useImperativeHandle","load","channel","index","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","unLoad","useEffect","filter","map","handleCloseAll","handleExpand","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","concat","style","children","Space","size","align","Tooltip","title","display","FoldIcon","ExpandIcon","CloseAllIcon","Grid1x1Icon","Grid2x2Icon","Grid3x3Icon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","deviceName","channelName","_Fragment","PlayerHeader","VtxLivePlayer","url","type","player","enableAgent","captureName","showInfo","info","currentIndex","currentChannels","_default","exports"],"sources":["live-control/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, Grid1x1Icon, Grid2x2Icon, Grid3x3Icon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { useFullscreen, useInterval, useRequest, useSetState } from 'ahooks';\nimport Space from 'antd/lib/space';\n// import { Space, Tooltip } from 'antd';\nimport Tooltip from 'antd/lib/tooltip';\nconst DEFAULT_GRID = 2;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(9).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControl = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onChannelChange, polling, isDark = false } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n });\n const wrapRef = useRef(null);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n useInterval(() => {\n // 是否有视频正在播放\n const hasVideo = state.channels.some((item) => item.channelNum);\n if (polling && hasVideo) {\n setState({\n channels: DEFAULT_CHANNELS,\n });\n const timer = setTimeout(() => {\n setState({\n channels: channelRef.current,\n });\n clearTimeout(timer);\n }, 0);\n }\n }, polling);\n useImperativeHandle(ref, () => {\n return {\n load: (channel) => {\n const index = state.channels.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...state.channels];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, state.grid, state.activeIndex);\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels) => {\n let grid = 1;\n if (channels.length > 1)\n grid = 2;\n if (channels.length > 4)\n grid = 3;\n const newChannels = [];\n for (let i = 0; i < 9; i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n setState({ grid, channels: newChannels });\n },\n unLoad: (channelId) => {\n const index = state.channels.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...state.channels];\n newChannels[index] = { channelNum: '' };\n setState({ channels: newChannels });\n }\n },\n };\n });\n useEffect(() => {\n channelRef.current = state.channels;\n if (onChannelChange) {\n onChannelChange(state.channels.filter((c) => !!c.channelNum).map((c) => c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({ channels: DEFAULT_CHANNELS });\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < state.grid * state.grid; i++) {\n const element = (_jsx(GridItem, { active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: state.channels[i], onClose: () => {\n const newChannels = [...state.channels];\n newChannels[i] = { channelNum: '' };\n setState({ channels: newChannels });\n } }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: `vtx-live-control${isDark ? ' live-dark' : ''}`, ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"controls\" }, { children: [_jsx(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: onExpandChange && (_jsx(Tooltip, Object.assign({ title: state.expand ? '收起' : '展开' }, { children: _jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) })) }))) })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(Tooltip, Object.assign({ title: \"\\u5168\\u90E8\\u5173\\u95ED\" }, { children: _jsx(\"div\", { children: _jsx(CloseAllIcon, { onClick: handleCloseAll }) }) })), _jsx(Tooltip, Object.assign({ title: \"1\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid1x1Icon, { active: state.grid === 1, onClick: () => setState({ grid: 1 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"4\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid2x2Icon, { active: state.grid === 2, onClick: () => setState({ grid: 2 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"9\\u5206\\u5C4F\" }, { children: _jsx(\"div\", { children: _jsx(Grid3x3Icon, { active: state.grid === 3, onClick: () => setState({ grid: 3 }) }) }) })), _jsx(Tooltip, Object.assign({ title: \"\\u5168\\u5C4F\" }, { children: _jsx(\"div\", { children: isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen })) }) }))] }))] }))] })));\n});\nLiveControl.displayName = 'LiveControl';\nconst GridItem = (props) => {\n const { active, onClick, channel, onClose } = props;\n const empty = !channel.channelNum;\n const { data } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''}`, onClick: onClick }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(VtxLivePlayer, { url: data.url, type: (data === null || data === void 0 ? void 0 : data.player) || '', enableAgent: (data === null || data === void 0 ? void 0 : data.enableAgent) || false, captureName: name, showInfo: channel.showInfo, info: channel.info }) }))] })) })));\n};\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, grid * grid);\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nexport default LiveControl;\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAF,sBAAA,CAAAN,OAAA;AAEA,IAAAS,QAAA,GAAAH,sBAAA,CAAAN,OAAA;AAAuC,SAAAM,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,mBAAAC,GAAA,WAAAC,kBAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAAG,2BAAA,CAAAH,GAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAH,iBAAAI,IAAA,eAAAC,MAAA,oBAAAD,IAAA,CAAAC,MAAA,CAAAC,QAAA,aAAAF,IAAA,+BAAAG,KAAA,CAAAC,IAAA,CAAAJ,IAAA;AAAA,SAAAL,mBAAAD,GAAA,QAAAS,KAAA,CAAAE,OAAA,CAAAX,GAAA,UAAAY,iBAAA,CAAAZ,GAAA;AAAA,SAAAa,eAAAb,GAAA,EAAAc,CAAA,WAAAC,eAAA,CAAAf,GAAA,KAAAgB,qBAAA,CAAAhB,GAAA,EAAAc,CAAA,KAAAX,2BAAA,CAAAH,GAAA,EAAAc,CAAA,KAAAG,gBAAA;AAAA,SAAAA,iBAAA,cAAAZ,SAAA;AAAA,SAAAF,4BAAAe,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAN,iBAAA,CAAAM,CAAA,EAAAC,MAAA,OAAAC,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAN,CAAA,EAAAO,KAAA,aAAAL,CAAA,iBAAAF,CAAA,CAAAQ,WAAA,EAAAN,CAAA,GAAAF,CAAA,CAAAQ,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAX,KAAA,CAAAC,IAAA,CAAAQ,CAAA,OAAAE,CAAA,+DAAAQ,IAAA,CAAAR,CAAA,UAAAR,iBAAA,CAAAM,CAAA,EAAAC,MAAA;AAAA,SAAAP,kBAAAZ,GAAA,EAAA6B,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAA7B,GAAA,CAAA8B,MAAA,EAAAD,GAAA,GAAA7B,GAAA,CAAA8B,MAAA,WAAAhB,CAAA,MAAAiB,IAAA,OAAAtB,KAAA,CAAAoB,GAAA,GAAAf,CAAA,GAAAe,GAAA,EAAAf,CAAA,IAAAiB,IAAA,CAAAjB,CAAA,IAAAd,GAAA,CAAAc,CAAA,UAAAiB,IAAA;AAAA,SAAAf,sBAAAhB,GAAA,EAAAc,CAAA,QAAAkB,EAAA,WAAAhC,GAAA,gCAAAO,MAAA,IAAAP,GAAA,CAAAO,MAAA,CAAAC,QAAA,KAAAR,GAAA,4BAAAgC,EAAA,QAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAH,EAAA,GAAAA,EAAA,CAAAR,IAAA,CAAAxB,GAAA,GAAAwC,IAAA,QAAA1B,CAAA,QAAAO,MAAA,CAAAW,EAAA,MAAAA,EAAA,UAAAM,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAAX,IAAA,CAAAQ,EAAA,GAAAS,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAAP,MAAA,KAAAhB,CAAA,GAAAwB,EAAA,iBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAN,EAAA,eAAAI,EAAA,GAAAJ,EAAA,cAAAX,MAAA,CAAAe,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAtB,gBAAAf,GAAA,QAAAS,KAAA,CAAAE,OAAA,CAAAX,GAAA,UAAAA,GAAA;AACvC,IAAM6C,YAAY,GAAG,CAAC;AACtB,IAAMC,cAAc,GAAG,CAAC;AACxB,IAAMC,gBAAgB,GAAGtC,KAAK,CAAC,CAAC,CAAC,CAACuC,IAAI,CAAC;EAAEC,UAAU,EAAE;AAAG,CAAC,CAAC;AAC1D;AACA;AACA;AACA,IAAMC,WAAW,gBAAG,IAAAC,iBAAU,EAAC,UAACC,KAAK,EAAEC,GAAG,EAAK;EAC3C,IAAAC,aAAA,GAAsGF,KAAK,CAAnGG,MAAM;IAANA,MAAM,GAAAD,aAAA,cAAG,MAAM,GAAAA,aAAA;IAAAE,YAAA,GAA+EJ,KAAK,CAAlFK,KAAK;IAALA,KAAK,GAAAD,YAAA,cAAG,MAAM,GAAAA,YAAA;IAAEE,cAAc,GAA+CN,KAAK,CAAlEM,cAAc;IAAEC,eAAe,GAA8BP,KAAK,CAAlDO,eAAe;IAAEC,OAAO,GAAqBR,KAAK,CAAjCQ,OAAO;IAAAC,aAAA,GAAqBT,KAAK,CAAxBU,MAAM;IAANA,MAAM,GAAAD,aAAA,cAAG,KAAK,GAAAA,aAAA;EACjG,IAAAE,YAAA,GAA0B,IAAAC,mBAAW,EAAC;MAClCC,MAAM,EAAE,IAAI;MACZC,IAAI,EAAErB,YAAY;MAClBsB,WAAW,EAAErB,cAAc;MAC3BsB,QAAQ,EAAErB;IACd,CAAC,CAAC;IAAAsB,aAAA,GAAAxD,cAAA,CAAAkD,YAAA;IALKO,KAAK,GAAAD,aAAA;IAAEE,QAAQ,GAAAF,aAAA;EAMtB,IAAMG,OAAO,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EAC5B,IAAAC,cAAA,GAA6C,IAAAC,qBAAa,EAACH,OAAO,CAAC;IAAAI,eAAA,GAAA/D,cAAA,CAAA6D,cAAA;IAA5DG,YAAY,GAAAD,eAAA;IAAIE,gBAAgB,GAAAF,eAAA,IAAhBE,gBAAgB;EACvC,IAAMC,UAAU,GAAG,IAAAN,aAAM,EAAC1B,gBAAgB,CAAC;EAC3C;EACA,IAAAiC,mBAAW,EAAC,YAAM;IACd;IACA,IAAMC,QAAQ,GAAGX,KAAK,CAACF,QAAQ,CAACc,IAAI,CAAC,UAACC,IAAI;MAAA,OAAKA,IAAI,CAAClC,UAAU;IAAA,EAAC;IAC/D,IAAIW,OAAO,IAAIqB,QAAQ,EAAE;MACrBV,QAAQ,CAAC;QACLH,QAAQ,EAAErB;MACd,CAAC,CAAC;MACF,IAAMqC,KAAK,GAAGC,UAAU,CAAC,YAAM;QAC3Bd,QAAQ,CAAC;UACLH,QAAQ,EAAEW,UAAU,CAACO;QACzB,CAAC,CAAC;QACFC,YAAY,CAACH,KAAK,CAAC;MACvB,CAAC,EAAE,CAAC,CAAC;IACT;EACJ,CAAC,EAAExB,OAAO,CAAC;EACX,IAAA4B,0BAAmB,EAACnC,GAAG,EAAE,YAAM;IAC3B,OAAO;MACHoC,IAAI,EAAE,SAAAA,KAACC,OAAO,EAAK;QACf,IAAMC,KAAK,GAAGrB,KAAK,CAACF,QAAQ,CAACwB,SAAS,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC,CAACC,SAAS,IAAIJ,OAAO,CAACI,SAAS,IAAID,CAAC,CAACC,SAAS,KAAKJ,OAAO,CAACI,SAAS;QAAA,EAAC;QACpH,IAAI,CAACH,KAAK,EAAE;UACRpB,QAAQ,CAAC;YAAEJ,WAAW,EAAEwB;UAAM,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,MACI;UACD;UACA,IAAMI,WAAW,GAAAhG,kBAAA,CAAOuE,KAAK,CAACF,QAAQ,CAAC;UACvC2B,WAAW,CAACzB,KAAK,CAACH,WAAW,CAAC,GAAGuB,OAAO;UACxC,IAAMvB,WAAW,GAAG6B,cAAc,CAACD,WAAW,EAAEzB,KAAK,CAACJ,IAAI,EAAEI,KAAK,CAACH,WAAW,CAAC;UAC9EI,QAAQ,CAAC;YAAEH,QAAQ,EAAE2B,WAAW;YAAE5B,WAAW,EAAXA;UAAY,CAAC,CAAC;QACpD;MACJ,CAAC;MACD8B,SAAS,EAAE,SAAAA,UAAC7B,QAAQ,EAAK;QACrB,IAAIF,IAAI,GAAG,CAAC;QACZ,IAAIE,QAAQ,CAACtC,MAAM,GAAG,CAAC,EACnBoC,IAAI,GAAG,CAAC;QACZ,IAAIE,QAAQ,CAACtC,MAAM,GAAG,CAAC,EACnBoC,IAAI,GAAG,CAAC;QACZ,IAAM6B,WAAW,GAAG,EAAE;QACtB,KAAK,IAAIjF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;UACxBiF,WAAW,CAACrD,IAAI,CAAC0B,QAAQ,CAACtD,CAAC,CAAC,GAAGsD,QAAQ,CAACtD,CAAC,CAAC,GAAG;YAAEmC,UAAU,EAAE;UAAG,CAAC,CAAC;QACpE;QACAsB,QAAQ,CAAC;UAAEL,IAAI,EAAJA,IAAI;UAAEE,QAAQ,EAAE2B;QAAY,CAAC,CAAC;MAC7C,CAAC;MACDG,MAAM,EAAE,SAAAA,OAACJ,SAAS,EAAK;QACnB,IAAMH,KAAK,GAAGrB,KAAK,CAACF,QAAQ,CAACwB,SAAS,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC,CAACC,SAAS,KAAKA,SAAS;QAAA,EAAC;QACxE,IAAI,CAACH,KAAK,EAAE;UACR;UACA,IAAMI,WAAW,GAAAhG,kBAAA,CAAOuE,KAAK,CAACF,QAAQ,CAAC;UACvC2B,WAAW,CAACJ,KAAK,CAAC,GAAG;YAAE1C,UAAU,EAAE;UAAG,CAAC;UACvCsB,QAAQ,CAAC;YAAEH,QAAQ,EAAE2B;UAAY,CAAC,CAAC;QACvC;MACJ;IACJ,CAAC;EACL,CAAC,CAAC;EACF,IAAAI,gBAAS,EAAC,YAAM;IACZpB,UAAU,CAACO,OAAO,GAAGhB,KAAK,CAACF,QAAQ;IACnC,IAAIT,eAAe,EAAE;MACjBA,eAAe,CAACW,KAAK,CAACF,QAAQ,CAACgC,MAAM,CAAC,UAACP,CAAC;QAAA,OAAK,CAAC,CAACA,CAAC,CAAC5C,UAAU;MAAA,EAAC,CAACoD,GAAG,CAAC,UAACR,CAAC;QAAA,OAAKA,CAAC,CAAC5C,UAAU;MAAA,EAAC,CAAC;IAC1F;EACJ,CAAC,EAAE,CAACqB,KAAK,CAACF,QAAQ,CAAC,CAAC;EACpB,IAAMkC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IACzB/B,QAAQ,CAAC;MAAEH,QAAQ,EAAErB;IAAiB,CAAC,CAAC;EAC5C,CAAC;EACD,IAAMwD,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACvB7C,cAAc,IAAIA,cAAc,CAAC,CAACY,KAAK,CAACL,MAAM,CAAC;IAC/CM,QAAQ,CAAC;MAAEN,MAAM,EAAE,CAACK,KAAK,CAACL;IAAO,CAAC,CAAC;EACvC,CAAC;EACD,IAAMuC,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACvB,IAAMC,KAAK,GAAG,EAAE;IAAC,IAAAC,KAAA,YAAAA,MAAA5F,CAAA,EACiC;MAC9C,IAAM6F,OAAO,GAAI,IAAAC,eAAI,EAACC,QAAQ,EAAE;QAAEC,MAAM,EAAExC,KAAK,CAACH,WAAW,KAAKrD,CAAC;QAAEiG,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAMxC,QAAQ,CAAC;YAAEJ,WAAW,EAAErD;UAAE,CAAC,CAAC;QAAA;QAAE4E,OAAO,EAAEpB,KAAK,CAACF,QAAQ,CAACtD,CAAC,CAAC;QAAEkG,OAAO,EAAE,SAAAA,QAAA,EAAM;UACnJ,IAAMjB,WAAW,GAAAhG,kBAAA,CAAOuE,KAAK,CAACF,QAAQ,CAAC;UACvC2B,WAAW,CAACjF,CAAC,CAAC,GAAG;YAAEmC,UAAU,EAAE;UAAG,CAAC;UACnCsB,QAAQ,CAAC;YAAEH,QAAQ,EAAE2B;UAAY,CAAC,CAAC;QACvC;MAAE,CAAC,EAAEjF,CAAC,CAAE;MACZ2F,KAAK,CAAC/D,IAAI,CAACiE,OAAO,CAAC;IACvB,CAAC;IAPD,KAAK,IAAI7F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwD,KAAK,CAACJ,IAAI,GAAGI,KAAK,CAACJ,IAAI,EAAEpD,CAAC,EAAE;MAAA4F,KAAA,CAAA5F,CAAA;IAAA;IAQhD,OAAO2F,KAAK;EAChB,CAAC;EACD,OAAQ,IAAAQ,gBAAK,EAAC,KAAK,EAAE5F,MAAM,CAAC6F,MAAM,CAAC;IAAEC,SAAS,qBAAAC,MAAA,CAAqBtD,MAAM,GAAG,YAAY,GAAG,EAAE,CAAE;IAAET,GAAG,EAAEmB,OAAO;IAAE6C,KAAK,EAAE;MAAE9D,MAAM,EAANA,MAAM;MAAEE,KAAK,EAALA;IAAM;EAAE,CAAC,EAAE;IAAE6D,QAAQ,EAAE,CAAC,IAAAV,eAAI,EAAC,KAAK,EAAEvF,MAAM,CAAC6F,MAAM,CAAC;MAAEC,SAAS,4BAAAC,MAAA,CAA4B9C,KAAK,CAACJ,IAAI;IAAG,CAAC,EAAE;MAAEoD,QAAQ,EAAEd,YAAY;IAAG,CAAC,CAAC,CAAC,EAAE,IAAAS,gBAAK,EAAC,KAAK,EAAE5F,MAAM,CAAC6F,MAAM,CAAC;MAAEC,SAAS,EAAE;IAAW,CAAC,EAAE;MAAEG,QAAQ,EAAE,CAAC,IAAAV,eAAI,EAACW,iBAAK,EAAElG,MAAM,CAAC6F,MAAM,CAAC;QAAEC,SAAS,EAAE,MAAM;QAAEK,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAS,CAAC,EAAE;QAAEH,QAAQ,EAAE5D,cAAc,IAAK,IAAAkD,eAAI,EAACc,mBAAO,EAAErG,MAAM,CAAC6F,MAAM,CAAC;UAAES,KAAK,EAAErD,KAAK,CAACL,MAAM,GAAG,IAAI,GAAG;QAAK,CAAC,EAAE;UAAEqD,QAAQ,EAAE,IAAAV,eAAI,EAAC,KAAK,EAAEvF,MAAM,CAAC6F,MAAM,CAAC;YAAEH,OAAO,EAAER,YAAY;YAAEc,KAAK,EAAE;cAAEO,OAAO,EAAE;YAAO;UAAE,CAAC,EAAE;YAAEN,QAAQ,EAAEhD,KAAK,CAACL,MAAM,GAAG,IAAA2C,eAAI,EAACiB,eAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAAjB,eAAI,EAACkB,iBAAU,EAAE,CAAC,CAAC;UAAE,CAAC,CAAC;QAAE,CAAC,CAAC;MAAG,CAAC,CAAC,CAAC,EAAE,IAAAb,gBAAK,EAACM,iBAAK,EAAElG,MAAM,CAAC6F,MAAM,CAAC;QAAEC,SAAS,EAAE,OAAO;QAAEK,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAS,CAAC,EAAE;QAAEH,QAAQ,EAAE,CAAC,IAAAV,eAAI,EAACc,mBAAO,EAAErG,MAAM,CAAC6F,MAAM,CAAC;UAAES,KAAK,EAAE;QAA2B,CAAC,EAAE;UAAEL,QAAQ,EAAE,IAAAV,eAAI,EAAC,KAAK,EAAE;YAAEU,QAAQ,EAAE,IAAAV,eAAI,EAACmB,mBAAY,EAAE;cAAEhB,OAAO,EAAET;YAAe,CAAC;UAAE,CAAC;QAAE,CAAC,CAAC,CAAC,EAAE,IAAAM,eAAI,EAACc,mBAAO,EAAErG,MAAM,CAAC6F,MAAM,CAAC;UAAES,KAAK,EAAE;QAAgB,CAAC,EAAE;UAAEL,QAAQ,EAAE,IAAAV,eAAI,EAAC,KAAK,EAAE;YAAEU,QAAQ,EAAE,IAAAV,eAAI,EAACoB,kBAAW,EAAE;cAAElB,MAAM,EAAExC,KAAK,CAACJ,IAAI,KAAK,CAAC;cAAE6C,OAAO,EAAE,SAAAA,QAAA;gBAAA,OAAMxC,QAAQ,CAAC;kBAAEL,IAAI,EAAE;gBAAE,CAAC,CAAC;cAAA;YAAC,CAAC;UAAE,CAAC;QAAE,CAAC,CAAC,CAAC,EAAE,IAAA0C,eAAI,EAACc,mBAAO,EAAErG,MAAM,CAAC6F,MAAM,CAAC;UAAES,KAAK,EAAE;QAAgB,CAAC,EAAE;UAAEL,QAAQ,EAAE,IAAAV,eAAI,EAAC,KAAK,EAAE;YAAEU,QAAQ,EAAE,IAAAV,eAAI,EAACqB,kBAAW,EAAE;cAAEnB,MAAM,EAAExC,KAAK,CAACJ,IAAI,KAAK,CAAC;cAAE6C,OAAO,EAAE,SAAAA,QAAA;gBAAA,OAAMxC,QAAQ,CAAC;kBAAEL,IAAI,EAAE;gBAAE,CAAC,CAAC;cAAA;YAAC,CAAC;UAAE,CAAC;QAAE,CAAC,CAAC,CAAC,EAAE,IAAA0C,eAAI,EAACc,mBAAO,EAAErG,MAAM,CAAC6F,MAAM,CAAC;UAAES,KAAK,EAAE;QAAgB,CAAC,EAAE;UAAEL,QAAQ,EAAE,IAAAV,eAAI,EAAC,KAAK,EAAE;YAAEU,QAAQ,EAAE,IAAAV,eAAI,EAACsB,kBAAW,EAAE;cAAEpB,MAAM,EAAExC,KAAK,CAACJ,IAAI,KAAK,CAAC;cAAE6C,OAAO,EAAE,SAAAA,QAAA;gBAAA,OAAMxC,QAAQ,CAAC;kBAAEL,IAAI,EAAE;gBAAE,CAAC,CAAC;cAAA;YAAC,CAAC;UAAE,CAAC;QAAE,CAAC,CAAC,CAAC,EAAE,IAAA0C,eAAI,EAACc,mBAAO,EAAErG,MAAM,CAAC6F,MAAM,CAAC;UAAES,KAAK,EAAE;QAAe,CAAC,EAAE;UAAEL,QAAQ,EAAE,IAAAV,eAAI,EAAC,KAAK,EAAE;YAAEU,QAAQ,EAAEzC,YAAY,GAAI,IAAA+B,eAAI,EAACuB,yBAAkB,EAAE;cAAEpB,OAAO,EAAEjC;YAAiB,CAAC,CAAC,GAAK,IAAA8B,eAAI,EAACwB,qBAAc,EAAE;cAAErB,OAAO,EAAEjC;YAAiB,CAAC;UAAG,CAAC;QAAE,CAAC,CAAC,CAAC;MAAE,CAAC,CAAC,CAAC;IAAE,CAAC,CAAC,CAAC;EAAE,CAAC,CAAC,CAAC;AACvsD,CAAC,CAAC;AACF5B,WAAW,CAACmF,WAAW,GAAG,aAAa;AACvC,IAAMxB,QAAQ,GAAG,SAAXA,QAAQA,CAAIzD,KAAK,EAAK;EACxB,IAAQ0D,MAAM,GAAgC1D,KAAK,CAA3C0D,MAAM;IAAEC,OAAO,GAAuB3D,KAAK,CAAnC2D,OAAO;IAAErB,OAAO,GAActC,KAAK,CAA1BsC,OAAO;IAAEsB,OAAO,GAAK5D,KAAK,CAAjB4D,OAAO;EACzC,IAAMsB,KAAK,GAAG,CAAC5C,OAAO,CAACzC,UAAU;EACjC,IAAAsF,WAAA,GAAiB,IAAAC,kBAAU,EAAC;MAAA,OAAM,IAAAC,kBAAa,EAAC/C,OAAO,CAAC;IAAA,GAAE;MACtDgD,KAAK,EAAE,CAAC,CAAChD,OAAO,CAACzC,UAAU;MAC3B0F,WAAW,EAAE,CAACjD,OAAO,CAACzC,UAAU;IACpC,CAAC,CAAC;IAHM2F,IAAI,GAAAL,WAAA,CAAJK,IAAI;EAIZ,IAAMjH,IAAI,MAAAyF,MAAA,CAAMwB,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACC,UAAU,OAAAzB,MAAA,CAAIwB,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACE,WAAW,CAAE;EAC7I,OAAQ,IAAAlC,eAAI,EAAC,KAAK,EAAEvF,MAAM,CAAC6F,MAAM,CAAC;IAAEC,SAAS,yBAAAC,MAAA,CAAyBN,MAAM,GAAG,QAAQ,GAAG,EAAE,CAAE;IAAEC,OAAO,EAAEA;EAAQ,CAAC,EAAE;IAAEO,QAAQ,EAAEsB,IAAI,IAAI,CAACN,KAAK,IAAK,IAAArB,gBAAK,EAAC8B,oBAAS,EAAE;MAAEzB,QAAQ,EAAE,CAAC,IAAAV,eAAI,EAACoC,sBAAY,EAAE;QAAErH,IAAI,EAAEA,IAAI;QAAEqF,OAAO,EAAEA;MAAQ,CAAC,CAAC,EAAE,IAAAJ,eAAI,EAAC,KAAK,EAAEvF,MAAM,CAAC6F,MAAM,CAAC;QAAEC,SAAS,EAAE;MAAU,CAAC,EAAE;QAAEG,QAAQ,EAAE,IAAAV,eAAI,EAACqC,sBAAa,EAAE;UAAEC,GAAG,EAAEN,IAAI,CAACM,GAAG;UAAEC,IAAI,EAAE,CAACP,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACQ,MAAM,KAAK,EAAE;UAAEC,WAAW,EAAE,CAACT,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACS,WAAW,KAAK,KAAK;UAAEC,WAAW,EAAE3H,IAAI;UAAE4H,QAAQ,EAAE7D,OAAO,CAAC6D,QAAQ;UAAEC,IAAI,EAAE9D,OAAO,CAAC8D;QAAK,CAAC;MAAE,CAAC,CAAC,CAAC;IAAE,CAAC;EAAG,CAAC,CAAC,CAAC;AAC9jB,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAMxD,cAAc,GAAG,SAAjBA,cAAcA,CAAI5B,QAAQ,EAAEF,IAAI,EAAEuF,YAAY,EAAK;EACrD,IAAMC,eAAe,GAAGtF,QAAQ,CAAC3C,KAAK,CAAC,CAAC,EAAEyC,IAAI,GAAGA,IAAI,CAAC;EACtD,KAAK,IAAIpD,CAAC,GAAG2I,YAAY,GAAG,CAAC,EAAE3I,CAAC,GAAG4I,eAAe,CAAC5H,MAAM,EAAEhB,CAAC,EAAE,EAAE;IAC5D,IAAI,CAAC4I,eAAe,CAAC5I,CAAC,CAAC,CAACmC,UAAU,EAC9B,OAAOnC,CAAC;EAChB;EACA,KAAK,IAAIA,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAG2I,YAAY,EAAE3I,GAAC,EAAE,EAAE;IACnC,IAAI,CAAC4I,eAAe,CAAC5I,GAAC,CAAC,CAACmC,UAAU,EAC9B,OAAOnC,GAAC;EAChB;EACA,OAAO2I,YAAY;AACvB,CAAC;AAAC,IAAAE,QAAA,GACazG,WAAW;AAAA0G,OAAA,cAAAD,QAAA"}
@@ -10,9 +10,9 @@ var _api = require("../api");
10
10
  var _splitScreen = _interopRequireDefault(require("../components/split-screen"));
11
11
  var _videoScale = _interopRequireDefault(require("../components/video-scale"));
12
12
  var _controls = require("../controls");
13
- var _utils = require("../utils");
14
13
  var _icons = require("../icons");
15
14
  var _livePlayer = _interopRequireDefault(require("../live-player"));
15
+ var _utils = require("../utils");
16
16
  var _icons2 = require("@ant-design/icons");
17
17
  var _ahooks = require("ahooks");
18
18
  var _space = _interopRequireDefault(require("antd/lib/space"));
@@ -58,6 +58,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
58
58
  _useSetState2 = _slicedToArray(_useSetState, 2),
59
59
  state = _useSetState2[0],
60
60
  setState = _useSetState2[1];
61
+ var playRefs = (0, _react.useRef)({});
61
62
  var wrapRef = (0, _react.useRef)(null);
62
63
  var latestGrid = (0, _react.useRef)(DEFAULT_GRID);
63
64
  var _useFullscreen = (0, _ahooks.useFullscreen)(wrapRef),
@@ -191,6 +192,24 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
191
192
  grid: grid,
192
193
  channels: newChannels
193
194
  });
195
+ // 重置视频大小
196
+ resizeAll();
197
+ };
198
+ var updateScale = function updateScale(scale) {
199
+ setState({
200
+ scale: scale
201
+ });
202
+ // 重置视频大小
203
+ resizeAll();
204
+ };
205
+ // 重置所有视频大小
206
+ var resizeAll = function resizeAll() {
207
+ var timer = setTimeout(function () {
208
+ Object.values(playRefs.current).forEach(function (player) {
209
+ player && player.resize();
210
+ });
211
+ clearTimeout(timer);
212
+ }, 100);
194
213
  };
195
214
  var updateChannels = function updateChannels(channels) {
196
215
  channelRef.current = channels;
@@ -211,6 +230,9 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
211
230
  var items = [];
212
231
  var _loop = function _loop(i) {
213
232
  var element = (0, _jsxRuntime.jsx)(GridItem, {
233
+ ref: function ref(_ref) {
234
+ playRefs.current[i] = _ref;
235
+ },
214
236
  active: state.activeIndex === i,
215
237
  onClick: function onClick() {
216
238
  return setState({
@@ -303,9 +325,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
303
325
  })), (0, _jsxRuntime.jsx)(_videoScale["default"], Object.assign({
304
326
  scale: state.scale,
305
327
  setScale: function setScale(scale) {
306
- return setState({
307
- scale: scale
308
- });
328
+ return updateScale(scale);
309
329
  }
310
330
  }, {
311
331
  children: (0, _jsxRuntime.jsxs)("div", Object.assign({
@@ -327,7 +347,7 @@ var LiveControlV2 = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
327
347
  }));
328
348
  });
329
349
  LiveControlV2.displayName = 'LiveControlV2';
330
- var GridItem = function GridItem(props) {
350
+ var GridItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
331
351
  var active = props.active,
332
352
  onClick = props.onClick,
333
353
  channel = props.channel,
@@ -421,7 +441,9 @@ var GridItem = function GridItem(props) {
421
441
  }
422
442
  }, {
423
443
  children: (0, _jsxRuntime.jsx)(_livePlayer["default"], {
444
+ ref: ref,
424
445
  url: data.url,
446
+ type: (data === null || data === void 0 ? void 0 : data.player) || '',
425
447
  captureName: name,
426
448
  deviceId: data.deviceId,
427
449
  channelNum: data.channelNum,
@@ -441,7 +463,8 @@ var GridItem = function GridItem(props) {
441
463
  }))]
442
464
  })
443
465
  }));
444
- };
466
+ });
467
+ GridItem.displayName = 'grid-item';
445
468
  /**
446
469
  * 获取当前激活的网格
447
470
  * @param channels 现有通道数组
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_splitScreen","_interopRequireDefault","_videoScale","_controls","_utils","_icons","_livePlayer","_icons2","_ahooks","_space","obj","__esModule","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","fill","channelNum","LiveControlV2","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onPlayingChannelChange","onVideoClose","onCloseVideoInRotation","extraDom","_props$gridChange","gridChange","onScreenshot","_useSetState","useSetState","expand","grid","activeIndex","channels","scale","_useSetState2","state","setState","wrapRef","useRef","latestGrid","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","arguments","undefined","adapt","getGrid","Number","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","map","item","closeVideo","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","concat","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","deviceName","channelName","_useSetState3","_useSetState4","_useSetState4$","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","captureName","deviceId","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","_default","exports"],"sources":["live-control-v2/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport SplitScreen from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { PlayerHeader } from '../controls';\nimport { getUrlParam } from '../utils';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState, useSize } from 'ahooks';\nimport Space from 'antd/lib/space';\nconst DEFAULT_GRID = 4;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(25).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControlV2 = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onPlayingChannelChange, onVideoClose, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: '100%',\n });\n const wrapRef = useRef(null);\n const latestGrid = useRef(DEFAULT_GRID);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n // useInterval(() => {\n // // 是否有视频正在播放\n // const hasVideo = channelRef.current.some((item) => item.channelNum);\n // if (polling && hasVideo) {\n // updateChannels(DEFAULT_CHANNELS);\n // const timer = setTimeout(() => {\n // setState({\n // channels: channelRef.current,\n // });\n // clearTimeout(timer);\n // }, 0);\n // }\n // }, polling);\n useImperativeHandle(ref, () => {\n return {\n setGrid: (grid) => {\n updateGrid(grid);\n },\n load: (channel) => {\n const index = channelRef.current.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...channelRef.current];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);\n channelRef.current = newChannels;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels, init = true, adapt = false) => {\n let grid = latestGrid.current;\n let newChannels = [], activeIndex = state.activeIndex;\n // 每次清空已经在播放的视频\n if (init) {\n adapt && (grid = getGrid(channels.length));\n for (let i = 0; i < Number(grid); i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n }\n else {\n // 不清空,找寻空闲窗口播放\n newChannels = [...channelRef.current];\n for (let i = 0; i < channels.length; i++) {\n newChannels[activeIndex] = channels[i] || { channelNum: '' };\n const index = getActiveIndex(newChannels, latestGrid.current, activeIndex);\n // 如果相等,说明没有空闲窗口\n if (index === activeIndex) {\n break;\n }\n activeIndex = index;\n }\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels, activeIndex });\n },\n unLoad: (channelId) => {\n const index = channelRef.current.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...channelRef.current];\n newChannels[index] = { channelNum: '' };\n updateChannels(newChannels);\n }\n },\n unLoadAll: handleCloseAll,\n };\n });\n useEffect(() => {\n if (onPlayingChannelChange) {\n onPlayingChannelChange(state.channels.filter((c) => !!c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({\n activeIndex: DEFAULT_ACTIVE,\n });\n updateChannels(DEFAULT_CHANNELS);\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const updateGrid = (grid) => {\n let newChannels = [...channelRef.current];\n if (grid > newChannels.length) {\n newChannels = DEFAULT_CHANNELS.slice(0, grid).map((item, index) => {\n return newChannels[index] ? newChannels[index] : item;\n });\n }\n else {\n newChannels = newChannels.slice(0, grid);\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels });\n };\n const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const newChannels = [...channelRef.current];\n onVideoClose && onVideoClose(newChannels[i]);\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: channelRef.current[i] || { channelNum: '' }, onClose: () => {\n // 如果正在轮播\n if (onCloseVideoInRotation) {\n onCloseVideoInRotation(() => closeVideo(i));\n return;\n }\n closeVideo(i);\n }, scale: state.scale, onScreenshot: onScreenshot }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-control-v2\", ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsxs(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: [onExpandChange && (_jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) }))), extraDom ? extraDom : null] })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), gridChange ? (_jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => updateGrid(grid) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) }))) : (_jsxs(\"div\", Object.assign({ className: 'grid-change-disable' }, { children: [_jsx(GridIcon, { disabled: !gridChange }), _jsx(DownOutlined, { className: \"arrow\" })] }))), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => setState({ scale }) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(OccupyingScreenIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen }))] }))] }))] })));\n});\nLiveControlV2.displayName = 'LiveControlV2';\nconst GridItem = (props) => {\n const { active, onClick, channel, onClose, onScreenshot, scale } = props;\n const empty = !channel.channelNum;\n const { data, loading } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const handlePtzType = (type) => {\n const types = {\n 1: 'all',\n 2: 'onlyFocus',\n 3: 'onlyRotate',\n 4: 'none',\n };\n return types[type];\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(VtxLivePlayer, { url: data.url, captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, showInfo: channel.showInfo, info: channel.info, screenshot: onScreenshot, cloudParams: {\n query: {\n channelNum: data.channelNum,\n deviceId: data.deviceId,\n tenantId: getUrlParam('tenantId'),\n },\n type: handlePtzType(data.ptzType),\n } }) })) }))] })) })));\n};\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, Number(grid));\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nconst grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];\n/**\n * 获取布局\n * @param len 通道数量\n */\nconst getGrid = (len) => {\n let grid;\n for (let i = 0; i < grids.length; i++) {\n if (grids[i] - len >= 0) {\n grid = grids[i];\n break;\n }\n }\n return grid > 25 ? 25 : grid;\n};\nexport default LiveControlV2;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_api","_splitScreen","_interopRequireDefault","_videoScale","_controls","_icons","_livePlayer","_utils","_icons2","_ahooks","_space","obj","__esModule","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","iter","Symbol","iterator","Array","from","isArray","_arrayLikeToArray","_slicedToArray","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","o","minLen","n","Object","prototype","toString","call","slice","constructor","name","test","len","length","arr2","_i","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","fill","channelNum","LiveControlV2","forwardRef","props","ref","_props$height","height","_props$width","width","onExpandChange","onPlayingChannelChange","onVideoClose","onCloseVideoInRotation","extraDom","_props$gridChange","gridChange","onScreenshot","_useSetState","useSetState","expand","grid","activeIndex","channels","scale","_useSetState2","state","setState","playRefs","useRef","wrapRef","latestGrid","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","arguments","undefined","adapt","getGrid","Number","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","filter","handleExpand","map","item","resizeAll","updateScale","timer","setTimeout","values","forEach","player","resize","clearTimeout","closeVideo","getGridItems","items","_loop","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","concat","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","_useRequest","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","deviceName","channelName","_useSetState3","_useSetState4","_useSetState4$","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","captureName","deviceId","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","_default","exports"],"sources":["live-control-v2/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { getPreviewUrl } from '../api';\nimport SplitScreen from '../components/split-screen';\nimport VideoScale from '../components/video-scale';\nimport { PlayerHeader } from '../controls';\nimport { CloseAllIcon, ExitFullScreenIcon, ExpandIcon, FoldIcon, FullScreenIcon, GridIcon, OccupyingScreenIcon, } from '../icons';\nimport VtxLivePlayer from '../live-player';\nimport { getUrlParam } from '../utils';\nimport { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { useFullscreen, useRequest, useSetState, useSize } from 'ahooks';\nimport Space from 'antd/lib/space';\nconst DEFAULT_GRID = 4;\nconst DEFAULT_ACTIVE = 0;\nconst DEFAULT_CHANNELS = Array(25).fill({ channelNum: '' });\n/**\n * 实时分屏组件\n */\nconst LiveControlV2 = forwardRef((props, ref) => {\n const { height = '100%', width = '100%', onExpandChange, onPlayingChannelChange, onVideoClose, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: '100%',\n });\n const playRefs = useRef({});\n const wrapRef = useRef(null);\n const latestGrid = useRef(DEFAULT_GRID);\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const channelRef = useRef(DEFAULT_CHANNELS);\n // 实时视频轮询\n // useInterval(() => {\n // // 是否有视频正在播放\n // const hasVideo = channelRef.current.some((item) => item.channelNum);\n // if (polling && hasVideo) {\n // updateChannels(DEFAULT_CHANNELS);\n // const timer = setTimeout(() => {\n // setState({\n // channels: channelRef.current,\n // });\n // clearTimeout(timer);\n // }, 0);\n // }\n // }, polling);\n useImperativeHandle(ref, () => {\n return {\n setGrid: (grid) => {\n updateGrid(grid);\n },\n load: (channel) => {\n const index = channelRef.current.findIndex((c) => c.channelId && channel.channelId && c.channelId === channel.channelId);\n if (~index) {\n setState({ activeIndex: index }); // 如果通道号已经存在,则设置激活索引为该通道\n }\n else {\n // 播放该通道\n const newChannels = [...channelRef.current];\n newChannels[state.activeIndex] = channel;\n const activeIndex = getActiveIndex(newChannels, latestGrid.current, state.activeIndex);\n channelRef.current = newChannels;\n setState({ channels: newChannels, activeIndex });\n }\n },\n multiLoad: (channels, init = true, adapt = false) => {\n let grid = latestGrid.current;\n let newChannels = [], activeIndex = state.activeIndex;\n // 每次清空已经在播放的视频\n if (init) {\n adapt && (grid = getGrid(channels.length));\n for (let i = 0; i < Number(grid); i++) {\n newChannels.push(channels[i] ? channels[i] : { channelNum: '' });\n }\n }\n else {\n // 不清空,找寻空闲窗口播放\n newChannels = [...channelRef.current];\n for (let i = 0; i < channels.length; i++) {\n newChannels[activeIndex] = channels[i] || { channelNum: '' };\n const index = getActiveIndex(newChannels, latestGrid.current, activeIndex);\n // 如果相等,说明没有空闲窗口\n if (index === activeIndex) {\n break;\n }\n activeIndex = index;\n }\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels, activeIndex });\n },\n unLoad: (channelId) => {\n const index = channelRef.current.findIndex((c) => c.channelId === channelId);\n if (~index) {\n // 卸载通道\n const newChannels = [...channelRef.current];\n newChannels[index] = { channelNum: '' };\n updateChannels(newChannels);\n }\n },\n unLoadAll: handleCloseAll,\n };\n });\n useEffect(() => {\n if (onPlayingChannelChange) {\n onPlayingChannelChange(state.channels.filter((c) => !!c.channelNum));\n }\n }, [state.channels]);\n const handleCloseAll = () => {\n setState({\n activeIndex: DEFAULT_ACTIVE,\n });\n updateChannels(DEFAULT_CHANNELS);\n };\n const handleExpand = () => {\n onExpandChange && onExpandChange(!state.expand);\n setState({ expand: !state.expand });\n };\n const updateGrid = (grid) => {\n let newChannels = [...channelRef.current];\n if (grid > newChannels.length) {\n newChannels = DEFAULT_CHANNELS.slice(0, grid).map((item, index) => {\n return newChannels[index] ? newChannels[index] : item;\n });\n }\n else {\n newChannels = newChannels.slice(0, grid);\n }\n latestGrid.current = grid;\n channelRef.current = newChannels;\n setState({ grid, channels: newChannels });\n // 重置视频大小\n resizeAll();\n };\n const updateScale = (scale) => {\n setState({ scale });\n // 重置视频大小\n resizeAll();\n };\n // 重置所有视频大小\n const resizeAll = () => {\n const timer = setTimeout(() => {\n Object.values(playRefs.current).forEach((player) => {\n player && player.resize();\n });\n clearTimeout(timer);\n }, 100);\n };\n const updateChannels = (channels) => {\n channelRef.current = channels;\n setState({ channels });\n };\n // 关闭视频\n const closeVideo = (i) => {\n const newChannels = [...channelRef.current];\n onVideoClose && onVideoClose(newChannels[i]);\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n };\n const getGridItems = () => {\n const items = [];\n for (let i = 0; i < Number(latestGrid.current); i++) {\n const element = (_jsx(GridItem, { ref: ref => {\n playRefs.current[i] = ref;\n }, active: state.activeIndex === i, onClick: () => setState({ activeIndex: i }), channel: channelRef.current[i] || { channelNum: '' }, onClose: () => {\n // 如果正在轮播\n if (onCloseVideoInRotation) {\n onCloseVideoInRotation(() => closeVideo(i));\n return;\n }\n closeVideo(i);\n }, scale: state.scale, onScreenshot: onScreenshot }, i));\n items.push(element);\n }\n return items;\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-control-v2\", ref: wrapRef, style: { height, width } }, { children: [_jsx(\"div\", Object.assign({ className: `player-grid-container _${state.grid}` }, { children: getGridItems() })), _jsxs(\"div\", Object.assign({ className: \"bottom-controls\" }, { children: [_jsxs(Space, Object.assign({ className: \"left\", size: 12, align: \"center\" }, { children: [onExpandChange && (_jsx(\"div\", Object.assign({ onClick: handleExpand, style: { display: 'flex' } }, { children: state.expand ? _jsx(FoldIcon, {}) : _jsx(ExpandIcon, {}) }))), extraDom ? extraDom : null] })), _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(CloseAllIcon, { onClick: handleCloseAll }), _jsx(\"div\", { className: \"split-line\" }), gridChange ? (_jsx(SplitScreen, Object.assign({ grid: state.grid, setGrid: (grid) => updateGrid(grid) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(GridIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) }))) : (_jsxs(\"div\", Object.assign({ className: 'grid-change-disable' }, { children: [_jsx(GridIcon, { disabled: !gridChange }), _jsx(DownOutlined, { className: \"arrow\" })] }))), _jsx(VideoScale, Object.assign({ scale: state.scale, setScale: (scale) => updateScale(scale) }, { children: _jsxs(\"div\", Object.assign({ className: 'controls-icon-hover' }, { children: [_jsx(OccupyingScreenIcon, {}), _jsx(DownOutlined, { className: \"hover-hide\" }), _jsx(UpOutlined, { className: \"hover-show\" })] })) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: toggleFullscreen })) : (_jsx(FullScreenIcon, { onClick: toggleFullscreen }))] }))] }))] })));\n});\nLiveControlV2.displayName = 'LiveControlV2';\nconst GridItem = forwardRef((props, ref) => {\n const { active, onClick, channel, onClose, onScreenshot, scale } = props;\n const empty = !channel.channelNum;\n const { data, loading } = useRequest(() => getPreviewUrl(channel), {\n ready: !!channel.channelNum,\n refreshDeps: [channel.channelNum],\n });\n const name = `${data === null || data === void 0 ? void 0 : data.deviceName}-${data === null || data === void 0 ? void 0 : data.channelName}`;\n const [{ width, height }, setState] = useSetState({\n width: '100%',\n height: '100%',\n });\n const gridItemRef = useRef(null);\n const gridItemSize = useSize(gridItemRef);\n useEffect(() => {\n if ((gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.width) && (gridItemSize === null || gridItemSize === void 0 ? void 0 : gridItemSize.height)) {\n switch (scale) {\n case '100%':\n setState({\n width: '100%',\n height: gridItemSize.height - 26,\n });\n break;\n case '4*3':\n if (gridItemSize.width / 4 < (gridItemSize.height - 26) / 3) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 4) * 3,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 3) * 4,\n height: '100%',\n });\n }\n break;\n case '16*9':\n if (gridItemSize.width / 16 < (gridItemSize.height - 26) / 9) {\n setState({\n width: '100%',\n height: (gridItemSize.width / 16) * 9,\n });\n }\n else {\n setState({\n width: ((gridItemSize.height - 26) / 9) * 16,\n height: '100%',\n });\n }\n break;\n }\n }\n }, [gridItemSize, scale]);\n const handlePtzType = (type) => {\n const types = {\n 1: 'all',\n 2: 'onlyFocus',\n 3: 'onlyRotate',\n 4: 'none',\n };\n return types[type];\n };\n return (_jsx(\"div\", Object.assign({ className: `grid-item-container ${active ? 'active' : ''} ${loading ? '' : 'emptyImg'}`, onClick: onClick, ref: gridItemRef }, { children: data && !empty && (_jsxs(_Fragment, { children: [_jsx(PlayerHeader, { name: name, onClose: onClose }), _jsx(\"div\", Object.assign({ className: \"content\" }, { children: _jsx(\"div\", Object.assign({ style: { width, height } }, { children: _jsx(VtxLivePlayer, { ref: ref, url: data.url, type: (data === null || data === void 0 ? void 0 : data.player) || '', captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, showInfo: channel.showInfo, info: channel.info, screenshot: onScreenshot, cloudParams: {\n query: {\n channelNum: data.channelNum,\n deviceId: data.deviceId,\n tenantId: getUrlParam('tenantId'),\n },\n type: handlePtzType(data.ptzType),\n } }) })) }))] })) })));\n});\nGridItem.displayName = 'grid-item';\n/**\n * 获取当前激活的网格\n * @param channels 现有通道数组\n * @param grid 当前网格状态\n * @param currentIndex 当前索引\n * @returns\n */\nconst getActiveIndex = (channels, grid, currentIndex) => {\n const currentChannels = channels.slice(0, Number(grid));\n for (let i = currentIndex + 1; i < currentChannels.length; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n for (let i = 0; i < currentIndex; i++) {\n if (!currentChannels[i].channelNum)\n return i;\n }\n return currentIndex;\n};\nconst grids = [1, 4, 6, 8, 9, 13, 17, 16, 22, 25];\n/**\n * 获取布局\n * @param len 通道数量\n */\nconst getGrid = (len) => {\n let grid;\n for (let i = 0; i < grids.length; i++) {\n if (grids[i] - len >= 0) {\n grid = grids[i];\n break;\n }\n }\n return grid > 25 ? 25 : grid;\n};\nexport default LiveControlV2;\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,IAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AACA,IAAAQ,WAAA,GAAAJ,sBAAA,CAAAJ,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,MAAA,GAAAR,sBAAA,CAAAJ,OAAA;AAAmC,SAAAI,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,mBAAAC,GAAA,WAAAC,kBAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAAG,2BAAA,CAAAH,GAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAC,SAAA;AAAA,SAAAH,iBAAAI,IAAA,eAAAC,MAAA,oBAAAD,IAAA,CAAAC,MAAA,CAAAC,QAAA,aAAAF,IAAA,+BAAAG,KAAA,CAAAC,IAAA,CAAAJ,IAAA;AAAA,SAAAL,mBAAAD,GAAA,QAAAS,KAAA,CAAAE,OAAA,CAAAX,GAAA,UAAAY,iBAAA,CAAAZ,GAAA;AAAA,SAAAa,eAAAb,GAAA,EAAAc,CAAA,WAAAC,eAAA,CAAAf,GAAA,KAAAgB,qBAAA,CAAAhB,GAAA,EAAAc,CAAA,KAAAX,2BAAA,CAAAH,GAAA,EAAAc,CAAA,KAAAG,gBAAA;AAAA,SAAAA,iBAAA,cAAAZ,SAAA;AAAA,SAAAF,4BAAAe,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAN,iBAAA,CAAAM,CAAA,EAAAC,MAAA,OAAAC,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAN,CAAA,EAAAO,KAAA,aAAAL,CAAA,iBAAAF,CAAA,CAAAQ,WAAA,EAAAN,CAAA,GAAAF,CAAA,CAAAQ,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAX,KAAA,CAAAC,IAAA,CAAAQ,CAAA,OAAAE,CAAA,+DAAAQ,IAAA,CAAAR,CAAA,UAAAR,iBAAA,CAAAM,CAAA,EAAAC,MAAA;AAAA,SAAAP,kBAAAZ,GAAA,EAAA6B,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAA7B,GAAA,CAAA8B,MAAA,EAAAD,GAAA,GAAA7B,GAAA,CAAA8B,MAAA,WAAAhB,CAAA,MAAAiB,IAAA,OAAAtB,KAAA,CAAAoB,GAAA,GAAAf,CAAA,GAAAe,GAAA,EAAAf,CAAA,IAAAiB,IAAA,CAAAjB,CAAA,IAAAd,GAAA,CAAAc,CAAA,UAAAiB,IAAA;AAAA,SAAAf,sBAAAhB,GAAA,EAAAc,CAAA,QAAAkB,EAAA,WAAAhC,GAAA,gCAAAO,MAAA,IAAAP,GAAA,CAAAO,MAAA,CAAAC,QAAA,KAAAR,GAAA,4BAAAgC,EAAA,QAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAH,EAAA,GAAAA,EAAA,CAAAR,IAAA,CAAAxB,GAAA,GAAAwC,IAAA,QAAA1B,CAAA,QAAAO,MAAA,CAAAW,EAAA,MAAAA,EAAA,UAAAM,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAAX,IAAA,CAAAQ,EAAA,GAAAS,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAAP,MAAA,KAAAhB,CAAA,GAAAwB,EAAA,iBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAN,EAAA,eAAAI,EAAA,GAAAJ,EAAA,cAAAX,MAAA,CAAAe,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAAtB,gBAAAf,GAAA,QAAAS,KAAA,CAAAE,OAAA,CAAAX,GAAA,UAAAA,GAAA;AACnC,IAAM6C,YAAY,GAAG,CAAC;AACtB,IAAMC,cAAc,GAAG,CAAC;AACxB,IAAMC,gBAAgB,GAAGtC,KAAK,CAAC,EAAE,CAAC,CAACuC,IAAI,CAAC;EAAEC,UAAU,EAAE;AAAG,CAAC,CAAC;AAC3D;AACA;AACA;AACA,IAAMC,aAAa,gBAAG,IAAAC,iBAAU,EAAC,UAACC,KAAK,EAAEC,GAAG,EAAK;EAC7C,IAAAC,aAAA,GAAsKF,KAAK,CAAnKG,MAAM;IAANA,MAAM,GAAAD,aAAA,cAAG,MAAM,GAAAA,aAAA;IAAAE,YAAA,GAA+IJ,KAAK,CAAlJK,KAAK;IAALA,KAAK,GAAAD,YAAA,cAAG,MAAM,GAAAA,YAAA;IAAEE,cAAc,GAA+GN,KAAK,CAAlIM,cAAc;IAAEC,sBAAsB,GAAuFP,KAAK,CAAlHO,sBAAsB;IAAEC,YAAY,GAAyER,KAAK,CAA1FQ,YAAY;IAAEC,sBAAsB,GAAiDT,KAAK,CAA5ES,sBAAsB;IAAEC,QAAQ,GAAuCV,KAAK,CAApDU,QAAQ;IAAAC,iBAAA,GAAuCX,KAAK,CAA1CY,UAAU;IAAVA,UAAU,GAAAD,iBAAA,cAAG,IAAI,GAAAA,iBAAA;IAAEE,YAAY,GAAMb,KAAK,CAAvBa,YAAY;EAChK,IAAAC,YAAA,GAA0B,IAAAC,mBAAW,EAAC;MAClCC,MAAM,EAAE,IAAI;MACZC,IAAI,EAAExB,YAAY;MAClByB,WAAW,EAAExB,cAAc;MAC3ByB,QAAQ,EAAExB,gBAAgB;MAC1ByB,KAAK,EAAE;IACX,CAAC,CAAC;IAAAC,aAAA,GAAA5D,cAAA,CAAAqD,YAAA;IANKQ,KAAK,GAAAD,aAAA;IAAEE,QAAQ,GAAAF,aAAA;EAOtB,IAAMG,QAAQ,GAAG,IAAAC,aAAM,EAAC,CAAC,CAAC,CAAC;EAC3B,IAAMC,OAAO,GAAG,IAAAD,aAAM,EAAC,IAAI,CAAC;EAC5B,IAAME,UAAU,GAAG,IAAAF,aAAM,EAAChC,YAAY,CAAC;EACvC,IAAAmC,cAAA,GAA6C,IAAAC,qBAAa,EAACH,OAAO,CAAC;IAAAI,eAAA,GAAArE,cAAA,CAAAmE,cAAA;IAA5DG,YAAY,GAAAD,eAAA;IAAIE,gBAAgB,GAAAF,eAAA,IAAhBE,gBAAgB;EACvC,IAAMC,UAAU,GAAG,IAAAR,aAAM,EAAC9B,gBAAgB,CAAC;EAC3C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAAuC,0BAAmB,EAACjC,GAAG,EAAE,YAAM;IAC3B,OAAO;MACHkC,OAAO,EAAE,SAAAA,QAAClB,IAAI,EAAK;QACfmB,UAAU,CAACnB,IAAI,CAAC;MACpB,CAAC;MACDoB,IAAI,EAAE,SAAAA,KAACC,OAAO,EAAK;QACf,IAAMC,KAAK,GAAGN,UAAU,CAACO,OAAO,CAACC,SAAS,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC,CAACC,SAAS,IAAIL,OAAO,CAACK,SAAS,IAAID,CAAC,CAACC,SAAS,KAAKL,OAAO,CAACK,SAAS;QAAA,EAAC;QACxH,IAAI,CAACJ,KAAK,EAAE;UACRhB,QAAQ,CAAC;YAAEL,WAAW,EAAEqB;UAAM,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC,MACI;UACD;UACA,IAAMK,WAAW,GAAAjG,kBAAA,CAAOsF,UAAU,CAACO,OAAO,CAAC;UAC3CI,WAAW,CAACtB,KAAK,CAACJ,WAAW,CAAC,GAAGoB,OAAO;UACxC,IAAMpB,WAAW,GAAG2B,cAAc,CAACD,WAAW,EAAEjB,UAAU,CAACa,OAAO,EAAElB,KAAK,CAACJ,WAAW,CAAC;UACtFe,UAAU,CAACO,OAAO,GAAGI,WAAW;UAChCrB,QAAQ,CAAC;YAAEJ,QAAQ,EAAEyB,WAAW;YAAE1B,WAAW,EAAXA;UAAY,CAAC,CAAC;QACpD;MACJ,CAAC;MACD4B,SAAS,EAAE,SAAAA,UAAC3B,QAAQ,EAAiC;QAAA,IAA/B4B,IAAI,GAAAC,SAAA,CAAAtE,MAAA,QAAAsE,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,IAAI;QAAA,IAAEE,KAAK,GAAAF,SAAA,CAAAtE,MAAA,QAAAsE,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;QAC5C,IAAI/B,IAAI,GAAGU,UAAU,CAACa,OAAO;QAC7B,IAAII,WAAW,GAAG,EAAE;UAAE1B,WAAW,GAAGI,KAAK,CAACJ,WAAW;QACrD;QACA,IAAI6B,IAAI,EAAE;UACNG,KAAK,KAAKjC,IAAI,GAAGkC,OAAO,CAAChC,QAAQ,CAACzC,MAAM,CAAC,CAAC;UAC1C,KAAK,IAAIhB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0F,MAAM,CAACnC,IAAI,CAAC,EAAEvD,CAAC,EAAE,EAAE;YACnCkF,WAAW,CAACtD,IAAI,CAAC6B,QAAQ,CAACzD,CAAC,CAAC,GAAGyD,QAAQ,CAACzD,CAAC,CAAC,GAAG;cAAEmC,UAAU,EAAE;YAAG,CAAC,CAAC;UACpE;QACJ,CAAC,MACI;UACD;UACA+C,WAAW,GAAAjG,kBAAA,CAAOsF,UAAU,CAACO,OAAO,CAAC;UACrC,KAAK,IAAI9E,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGyD,QAAQ,CAACzC,MAAM,EAAEhB,GAAC,EAAE,EAAE;YACtCkF,WAAW,CAAC1B,WAAW,CAAC,GAAGC,QAAQ,CAACzD,GAAC,CAAC,IAAI;cAAEmC,UAAU,EAAE;YAAG,CAAC;YAC5D,IAAM0C,KAAK,GAAGM,cAAc,CAACD,WAAW,EAAEjB,UAAU,CAACa,OAAO,EAAEtB,WAAW,CAAC;YAC1E;YACA,IAAIqB,KAAK,KAAKrB,WAAW,EAAE;cACvB;YACJ;YACAA,WAAW,GAAGqB,KAAK;UACvB;QACJ;QACAZ,UAAU,CAACa,OAAO,GAAGvB,IAAI;QACzBgB,UAAU,CAACO,OAAO,GAAGI,WAAW;QAChCrB,QAAQ,CAAC;UAAEN,IAAI,EAAJA,IAAI;UAAEE,QAAQ,EAAEyB,WAAW;UAAE1B,WAAW,EAAXA;QAAY,CAAC,CAAC;MAC1D,CAAC;MACDmC,MAAM,EAAE,SAAAA,OAACV,SAAS,EAAK;QACnB,IAAMJ,KAAK,GAAGN,UAAU,CAACO,OAAO,CAACC,SAAS,CAAC,UAACC,CAAC;UAAA,OAAKA,CAAC,CAACC,SAAS,KAAKA,SAAS;QAAA,EAAC;QAC5E,IAAI,CAACJ,KAAK,EAAE;UACR;UACA,IAAMK,WAAW,GAAAjG,kBAAA,CAAOsF,UAAU,CAACO,OAAO,CAAC;UAC3CI,WAAW,CAACL,KAAK,CAAC,GAAG;YAAE1C,UAAU,EAAE;UAAG,CAAC;UACvCyD,cAAc,CAACV,WAAW,CAAC;QAC/B;MACJ,CAAC;MACDW,SAAS,EAAEC;IACf,CAAC;EACL,CAAC,CAAC;EACF,IAAAC,gBAAS,EAAC,YAAM;IACZ,IAAIlD,sBAAsB,EAAE;MACxBA,sBAAsB,CAACe,KAAK,CAACH,QAAQ,CAACuC,MAAM,CAAC,UAAChB,CAAC;QAAA,OAAK,CAAC,CAACA,CAAC,CAAC7C,UAAU;MAAA,EAAC,CAAC;IACxE;EACJ,CAAC,EAAE,CAACyB,KAAK,CAACH,QAAQ,CAAC,CAAC;EACpB,IAAMqC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;IACzBjC,QAAQ,CAAC;MACLL,WAAW,EAAExB;IACjB,CAAC,CAAC;IACF4D,cAAc,CAAC3D,gBAAgB,CAAC;EACpC,CAAC;EACD,IAAMgE,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACvBrD,cAAc,IAAIA,cAAc,CAAC,CAACgB,KAAK,CAACN,MAAM,CAAC;IAC/CO,QAAQ,CAAC;MAAEP,MAAM,EAAE,CAACM,KAAK,CAACN;IAAO,CAAC,CAAC;EACvC,CAAC;EACD,IAAMoB,UAAU,GAAG,SAAbA,UAAUA,CAAInB,IAAI,EAAK;IACzB,IAAI2B,WAAW,GAAAjG,kBAAA,CAAOsF,UAAU,CAACO,OAAO,CAAC;IACzC,IAAIvB,IAAI,GAAG2B,WAAW,CAAClE,MAAM,EAAE;MAC3BkE,WAAW,GAAGjD,gBAAgB,CAACtB,KAAK,CAAC,CAAC,EAAE4C,IAAI,CAAC,CAAC2C,GAAG,CAAC,UAACC,IAAI,EAAEtB,KAAK,EAAK;QAC/D,OAAOK,WAAW,CAACL,KAAK,CAAC,GAAGK,WAAW,CAACL,KAAK,CAAC,GAAGsB,IAAI;MACzD,CAAC,CAAC;IACN,CAAC,MACI;MACDjB,WAAW,GAAGA,WAAW,CAACvE,KAAK,CAAC,CAAC,EAAE4C,IAAI,CAAC;IAC5C;IACAU,UAAU,CAACa,OAAO,GAAGvB,IAAI;IACzBgB,UAAU,CAACO,OAAO,GAAGI,WAAW;IAChCrB,QAAQ,CAAC;MAAEN,IAAI,EAAJA,IAAI;MAAEE,QAAQ,EAAEyB;IAAY,CAAC,CAAC;IACzC;IACAkB,SAAS,EAAE;EACf,CAAC;EACD,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAI3C,KAAK,EAAK;IAC3BG,QAAQ,CAAC;MAAEH,KAAK,EAALA;IAAM,CAAC,CAAC;IACnB;IACA0C,SAAS,EAAE;EACf,CAAC;EACD;EACA,IAAMA,SAAS,GAAG,SAAZA,SAASA,CAAA,EAAS;IACpB,IAAME,KAAK,GAAGC,UAAU,CAAC,YAAM;MAC3BhG,MAAM,CAACiG,MAAM,CAAC1C,QAAQ,CAACgB,OAAO,CAAC,CAAC2B,OAAO,CAAC,UAACC,MAAM,EAAK;QAChDA,MAAM,IAAIA,MAAM,CAACC,MAAM,EAAE;MAC7B,CAAC,CAAC;MACFC,YAAY,CAACN,KAAK,CAAC;IACvB,CAAC,EAAE,GAAG,CAAC;EACX,CAAC;EACD,IAAMV,cAAc,GAAG,SAAjBA,cAAcA,CAAInC,QAAQ,EAAK;IACjCc,UAAU,CAACO,OAAO,GAAGrB,QAAQ;IAC7BI,QAAQ,CAAC;MAAEJ,QAAQ,EAARA;IAAS,CAAC,CAAC;EAC1B,CAAC;EACD;EACA,IAAMoD,UAAU,GAAG,SAAbA,UAAUA,CAAI7G,CAAC,EAAK;IACtB,IAAMkF,WAAW,GAAAjG,kBAAA,CAAOsF,UAAU,CAACO,OAAO,CAAC;IAC3ChC,YAAY,IAAIA,YAAY,CAACoC,WAAW,CAAClF,CAAC,CAAC,CAAC;IAC5CkF,WAAW,CAAClF,CAAC,CAAC,GAAG;MAAEmC,UAAU,EAAE;IAAG,CAAC;IACnCyD,cAAc,CAACV,WAAW,CAAC;EAC/B,CAAC;EACD,IAAM4B,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACvB,IAAMC,KAAK,GAAG,EAAE;IAAC,IAAAC,KAAA,YAAAA,MAAAhH,CAAA,EACoC;MACjD,IAAMiH,OAAO,GAAI,IAAAC,eAAI,EAACC,QAAQ,EAAE;QAAE5E,GAAG,EAAE,SAAAA,QAAG,EAAI;UACtCuB,QAAQ,CAACgB,OAAO,CAAC9E,CAAC,CAAC,GAAGuC,IAAG;QAC7B,CAAC;QAAE6E,MAAM,EAAExD,KAAK,CAACJ,WAAW,KAAKxD,CAAC;QAAEqH,OAAO,EAAE,SAAAA,QAAA;UAAA,OAAMxD,QAAQ,CAAC;YAAEL,WAAW,EAAExD;UAAE,CAAC,CAAC;QAAA;QAAE4E,OAAO,EAAEL,UAAU,CAACO,OAAO,CAAC9E,CAAC,CAAC,IAAI;UAAEmC,UAAU,EAAE;QAAG,CAAC;QAAEmF,OAAO,EAAE,SAAAA,QAAA,EAAM;UAClJ;UACA,IAAIvE,sBAAsB,EAAE;YACxBA,sBAAsB,CAAC;cAAA,OAAM8D,UAAU,CAAC7G,CAAC,CAAC;YAAA,EAAC;YAC3C;UACJ;UACA6G,UAAU,CAAC7G,CAAC,CAAC;QACjB,CAAC;QAAE0D,KAAK,EAAEE,KAAK,CAACF,KAAK;QAAEP,YAAY,EAAEA;MAAa,CAAC,EAAEnD,CAAC,CAAE;MAC5D+G,KAAK,CAACnF,IAAI,CAACqF,OAAO,CAAC;IACvB,CAAC;IAZD,KAAK,IAAIjH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0F,MAAM,CAACzB,UAAU,CAACa,OAAO,CAAC,EAAE9E,CAAC,EAAE;MAAAgH,KAAA,CAAAhH,CAAA;IAAA;IAanD,OAAO+G,KAAK;EAChB,CAAC;EACD,OAAQ,IAAAQ,gBAAK,EAAC,KAAK,EAAEhH,MAAM,CAACiH,MAAM,CAAC;IAAEC,SAAS,EAAE,qBAAqB;IAAElF,GAAG,EAAEyB,OAAO;IAAE0D,KAAK,EAAE;MAAEjF,MAAM,EAANA,MAAM;MAAEE,KAAK,EAALA;IAAM;EAAE,CAAC,EAAE;IAAEgF,QAAQ,EAAE,CAAC,IAAAT,eAAI,EAAC,KAAK,EAAE3G,MAAM,CAACiH,MAAM,CAAC;MAAEC,SAAS,4BAAAG,MAAA,CAA4BhE,KAAK,CAACL,IAAI;IAAG,CAAC,EAAE;MAAEoE,QAAQ,EAAEb,YAAY;IAAG,CAAC,CAAC,CAAC,EAAE,IAAAS,gBAAK,EAAC,KAAK,EAAEhH,MAAM,CAACiH,MAAM,CAAC;MAAEC,SAAS,EAAE;IAAkB,CAAC,EAAE;MAAEE,QAAQ,EAAE,CAAC,IAAAJ,gBAAK,EAACM,iBAAK,EAAEtH,MAAM,CAACiH,MAAM,CAAC;QAAEC,SAAS,EAAE,MAAM;QAAEK,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAS,CAAC,EAAE;QAAEJ,QAAQ,EAAE,CAAC/E,cAAc,IAAK,IAAAsE,eAAI,EAAC,KAAK,EAAE3G,MAAM,CAACiH,MAAM,CAAC;UAAEH,OAAO,EAAEpB,YAAY;UAAEyB,KAAK,EAAE;YAAEM,OAAO,EAAE;UAAO;QAAE,CAAC,EAAE;UAAEL,QAAQ,EAAE/D,KAAK,CAACN,MAAM,GAAG,IAAA4D,eAAI,EAACe,eAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,IAAAf,eAAI,EAACgB,iBAAU,EAAE,CAAC,CAAC;QAAE,CAAC,CAAC,CAAE,EAAElF,QAAQ,GAAGA,QAAQ,GAAG,IAAI;MAAE,CAAC,CAAC,CAAC,EAAE,IAAAuE,gBAAK,EAACM,iBAAK,EAAEtH,MAAM,CAACiH,MAAM,CAAC;QAAEC,SAAS,EAAE,OAAO;QAAEK,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAS,CAAC,EAAE;QAAEJ,QAAQ,EAAE,CAAC,IAAAT,eAAI,EAACiB,mBAAY,EAAE;UAAEd,OAAO,EAAEvB;QAAe,CAAC,CAAC,EAAE,IAAAoB,eAAI,EAAC,KAAK,EAAE;UAAEO,SAAS,EAAE;QAAa,CAAC,CAAC,EAAEvE,UAAU,GAAI,IAAAgE,eAAI,EAACkB,uBAAW,EAAE7H,MAAM,CAACiH,MAAM,CAAC;UAAEjE,IAAI,EAAEK,KAAK,CAACL,IAAI;UAAEkB,OAAO,EAAE,SAAAA,QAAClB,IAAI;YAAA,OAAKmB,UAAU,CAACnB,IAAI,CAAC;UAAA;QAAC,CAAC,EAAE;UAAEoE,QAAQ,EAAE,IAAAJ,gBAAK,EAAC,KAAK,EAAEhH,MAAM,CAACiH,MAAM,CAAC;YAAEC,SAAS,EAAE;UAAsB,CAAC,EAAE;YAAEE,QAAQ,EAAE,CAAC,IAAAT,eAAI,EAACmB,eAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,IAAAnB,eAAI,EAACoB,oBAAY,EAAE;cAAEb,SAAS,EAAE;YAAa,CAAC,CAAC,EAAE,IAAAP,eAAI,EAACqB,kBAAU,EAAE;cAAEd,SAAS,EAAE;YAAa,CAAC,CAAC;UAAE,CAAC,CAAC;QAAE,CAAC,CAAC,CAAC,GAAK,IAAAF,gBAAK,EAAC,KAAK,EAAEhH,MAAM,CAACiH,MAAM,CAAC;UAAEC,SAAS,EAAE;QAAsB,CAAC,EAAE;UAAEE,QAAQ,EAAE,CAAC,IAAAT,eAAI,EAACmB,eAAQ,EAAE;YAAEG,QAAQ,EAAE,CAACtF;UAAW,CAAC,CAAC,EAAE,IAAAgE,eAAI,EAACoB,oBAAY,EAAE;YAAEb,SAAS,EAAE;UAAQ,CAAC,CAAC;QAAE,CAAC,CAAC,CAAE,EAAE,IAAAP,eAAI,EAACuB,sBAAU,EAAElI,MAAM,CAACiH,MAAM,CAAC;UAAE9D,KAAK,EAAEE,KAAK,CAACF,KAAK;UAAEgF,QAAQ,EAAE,SAAAA,SAAChF,KAAK;YAAA,OAAK2C,WAAW,CAAC3C,KAAK,CAAC;UAAA;QAAC,CAAC,EAAE;UAAEiE,QAAQ,EAAE,IAAAJ,gBAAK,EAAC,KAAK,EAAEhH,MAAM,CAACiH,MAAM,CAAC;YAAEC,SAAS,EAAE;UAAsB,CAAC,EAAE;YAAEE,QAAQ,EAAE,CAAC,IAAAT,eAAI,EAACyB,0BAAmB,EAAE,CAAC,CAAC,CAAC,EAAE,IAAAzB,eAAI,EAACoB,oBAAY,EAAE;cAAEb,SAAS,EAAE;YAAa,CAAC,CAAC,EAAE,IAAAP,eAAI,EAACqB,kBAAU,EAAE;cAAEd,SAAS,EAAE;YAAa,CAAC,CAAC;UAAE,CAAC,CAAC;QAAE,CAAC,CAAC,CAAC,EAAEpD,YAAY,GAAI,IAAA6C,eAAI,EAAC0B,yBAAkB,EAAE;UAAEvB,OAAO,EAAE/C;QAAiB,CAAC,CAAC,GAAK,IAAA4C,eAAI,EAAC2B,qBAAc,EAAE;UAAExB,OAAO,EAAE/C;QAAiB,CAAC,CAAE;MAAE,CAAC,CAAC,CAAC;IAAE,CAAC,CAAC,CAAC;EAAE,CAAC,CAAC,CAAC;AAC5tD,CAAC,CAAC;AACFlC,aAAa,CAAC0G,WAAW,GAAG,eAAe;AAC3C,IAAM3B,QAAQ,gBAAG,IAAA9E,iBAAU,EAAC,UAACC,KAAK,EAAEC,GAAG,EAAK;EACxC,IAAQ6E,MAAM,GAAqD9E,KAAK,CAAhE8E,MAAM;IAAEC,OAAO,GAA4C/E,KAAK,CAAxD+E,OAAO;IAAEzC,OAAO,GAAmCtC,KAAK,CAA/CsC,OAAO;IAAE0C,OAAO,GAA0BhF,KAAK,CAAtCgF,OAAO;IAAEnE,YAAY,GAAYb,KAAK,CAA7Ba,YAAY;IAAEO,KAAK,GAAKpB,KAAK,CAAfoB,KAAK;EAC9D,IAAMqF,KAAK,GAAG,CAACnE,OAAO,CAACzC,UAAU;EACjC,IAAA6G,WAAA,GAA0B,IAAAC,kBAAU,EAAC;MAAA,OAAM,IAAAC,kBAAa,EAACtE,OAAO,CAAC;IAAA,GAAE;MAC/DuE,KAAK,EAAE,CAAC,CAACvE,OAAO,CAACzC,UAAU;MAC3BiH,WAAW,EAAE,CAACxE,OAAO,CAACzC,UAAU;IACpC,CAAC,CAAC;IAHMkH,IAAI,GAAAL,WAAA,CAAJK,IAAI;IAAEC,OAAO,GAAAN,WAAA,CAAPM,OAAO;EAIrB,IAAMzI,IAAI,MAAA+G,MAAA,CAAMyB,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACE,UAAU,OAAA3B,MAAA,CAAIyB,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACG,WAAW,CAAE;EAC7I,IAAAC,aAAA,GAAsC,IAAApG,mBAAW,EAAC;MAC9CV,KAAK,EAAE,MAAM;MACbF,MAAM,EAAE;IACZ,CAAC,CAAC;IAAAiH,aAAA,GAAA3J,cAAA,CAAA0J,aAAA;IAAAE,cAAA,GAAAD,aAAA;IAHO/G,KAAK,GAAAgH,cAAA,CAALhH,KAAK;IAAEF,MAAM,GAAAkH,cAAA,CAANlH,MAAM;IAAIoB,QAAQ,GAAA6F,aAAA;EAIlC,IAAME,WAAW,GAAG,IAAA7F,aAAM,EAAC,IAAI,CAAC;EAChC,IAAM8F,YAAY,GAAG,IAAAC,eAAO,EAACF,WAAW,CAAC;EACzC,IAAA7D,gBAAS,EAAC,YAAM;IACZ,IAAI,CAAC8D,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,YAAY,CAAClH,KAAK,MAAMkH,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,YAAY,CAACpH,MAAM,CAAC,EAAE;MACvK,QAAQiB,KAAK;QACT,KAAK,MAAM;UACPG,QAAQ,CAAC;YACLlB,KAAK,EAAE,MAAM;YACbF,MAAM,EAAEoH,YAAY,CAACpH,MAAM,GAAG;UAClC,CAAC,CAAC;UACF;QACJ,KAAK,KAAK;UACN,IAAIoH,YAAY,CAAClH,KAAK,GAAG,CAAC,GAAG,CAACkH,YAAY,CAACpH,MAAM,GAAG,EAAE,IAAI,CAAC,EAAE;YACzDoB,QAAQ,CAAC;cACLlB,KAAK,EAAE,MAAM;cACbF,MAAM,EAAGoH,YAAY,CAAClH,KAAK,GAAG,CAAC,GAAI;YACvC,CAAC,CAAC;UACN,CAAC,MACI;YACDkB,QAAQ,CAAC;cACLlB,KAAK,EAAG,CAACkH,YAAY,CAACpH,MAAM,GAAG,EAAE,IAAI,CAAC,GAAI,CAAC;cAC3CA,MAAM,EAAE;YACZ,CAAC,CAAC;UACN;UACA;QACJ,KAAK,MAAM;UACP,IAAIoH,YAAY,CAAClH,KAAK,GAAG,EAAE,GAAG,CAACkH,YAAY,CAACpH,MAAM,GAAG,EAAE,IAAI,CAAC,EAAE;YAC1DoB,QAAQ,CAAC;cACLlB,KAAK,EAAE,MAAM;cACbF,MAAM,EAAGoH,YAAY,CAAClH,KAAK,GAAG,EAAE,GAAI;YACxC,CAAC,CAAC;UACN,CAAC,MACI;YACDkB,QAAQ,CAAC;cACLlB,KAAK,EAAG,CAACkH,YAAY,CAACpH,MAAM,GAAG,EAAE,IAAI,CAAC,GAAI,EAAE;cAC5CA,MAAM,EAAE;YACZ,CAAC,CAAC;UACN;UACA;MAAM;IAElB;EACJ,CAAC,EAAE,CAACoH,YAAY,EAAEnG,KAAK,CAAC,CAAC;EACzB,IAAMqG,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAI,EAAK;IAC5B,IAAMC,KAAK,GAAG;MACV,CAAC,EAAE,KAAK;MACR,CAAC,EAAE,WAAW;MACd,CAAC,EAAE,YAAY;MACf,CAAC,EAAE;IACP,CAAC;IACD,OAAOA,KAAK,CAACD,IAAI,CAAC;EACtB,CAAC;EACD,OAAQ,IAAA9C,eAAI,EAAC,KAAK,EAAE3G,MAAM,CAACiH,MAAM,CAAC;IAAEC,SAAS,yBAAAG,MAAA,CAAyBR,MAAM,GAAG,QAAQ,GAAG,EAAE,OAAAQ,MAAA,CAAI0B,OAAO,GAAG,EAAE,GAAG,UAAU,CAAE;IAAEjC,OAAO,EAAEA,OAAO;IAAE9E,GAAG,EAAEqH;EAAY,CAAC,EAAE;IAAEjC,QAAQ,EAAE0B,IAAI,IAAI,CAACN,KAAK,IAAK,IAAAxB,gBAAK,EAAC2C,oBAAS,EAAE;MAAEvC,QAAQ,EAAE,CAAC,IAAAT,eAAI,EAACiD,sBAAY,EAAE;QAAEtJ,IAAI,EAAEA,IAAI;QAAEyG,OAAO,EAAEA;MAAQ,CAAC,CAAC,EAAE,IAAAJ,eAAI,EAAC,KAAK,EAAE3G,MAAM,CAACiH,MAAM,CAAC;QAAEC,SAAS,EAAE;MAAU,CAAC,EAAE;QAAEE,QAAQ,EAAE,IAAAT,eAAI,EAAC,KAAK,EAAE3G,MAAM,CAACiH,MAAM,CAAC;UAAEE,KAAK,EAAE;YAAE/E,KAAK,EAALA,KAAK;YAAEF,MAAM,EAANA;UAAO;QAAE,CAAC,EAAE;UAAEkF,QAAQ,EAAE,IAAAT,eAAI,EAACkD,sBAAa,EAAE;YAAE7H,GAAG,EAAEA,GAAG;YAAE8H,GAAG,EAAEhB,IAAI,CAACgB,GAAG;YAAEL,IAAI,EAAE,CAACX,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAAC3C,MAAM,KAAK,EAAE;YAAE4D,WAAW,EAAEzJ,IAAI;YAAE0J,QAAQ,EAAElB,IAAI,CAACkB,QAAQ;YAAEpI,UAAU,EAAEkH,IAAI,CAAClH,UAAU;YAAEqI,QAAQ,EAAE5F,OAAO,CAAC4F,QAAQ;YAAEC,IAAI,EAAE7F,OAAO,CAAC6F,IAAI;YAAEC,UAAU,EAAEvH,YAAY;YAAEwH,WAAW,EAAE;cACppBC,KAAK,EAAE;gBACHzI,UAAU,EAAEkH,IAAI,CAAClH,UAAU;gBAC3BoI,QAAQ,EAAElB,IAAI,CAACkB,QAAQ;gBACvBM,QAAQ,EAAE,IAAAC,kBAAW,EAAC,UAAU;cACpC,CAAC;cACDd,IAAI,EAAED,aAAa,CAACV,IAAI,CAAC0B,OAAO;YACpC;UAAE,CAAC;QAAE,CAAC,CAAC;MAAE,CAAC,CAAC,CAAC;IAAE,CAAC;EAAG,CAAC,CAAC,CAAC;AACjD,CAAC,CAAC;AACF5D,QAAQ,CAAC2B,WAAW,GAAG,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAM3D,cAAc,GAAG,SAAjBA,cAAcA,CAAI1B,QAAQ,EAAEF,IAAI,EAAEyH,YAAY,EAAK;EACrD,IAAMC,eAAe,GAAGxH,QAAQ,CAAC9C,KAAK,CAAC,CAAC,EAAE+E,MAAM,CAACnC,IAAI,CAAC,CAAC;EACvD,KAAK,IAAIvD,CAAC,GAAGgL,YAAY,GAAG,CAAC,EAAEhL,CAAC,GAAGiL,eAAe,CAACjK,MAAM,EAAEhB,CAAC,EAAE,EAAE;IAC5D,IAAI,CAACiL,eAAe,CAACjL,CAAC,CAAC,CAACmC,UAAU,EAC9B,OAAOnC,CAAC;EAChB;EACA,KAAK,IAAIA,GAAC,GAAG,CAAC,EAAEA,GAAC,GAAGgL,YAAY,EAAEhL,GAAC,EAAE,EAAE;IACnC,IAAI,CAACiL,eAAe,CAACjL,GAAC,CAAC,CAACmC,UAAU,EAC9B,OAAOnC,GAAC;EAChB;EACA,OAAOgL,YAAY;AACvB,CAAC;AACD,IAAME,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACjD;AACA;AACA;AACA;AACA,IAAMzF,OAAO,GAAG,SAAVA,OAAOA,CAAI1E,GAAG,EAAK;EACrB,IAAIwC,IAAI;EACR,KAAK,IAAIvD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkL,KAAK,CAAClK,MAAM,EAAEhB,CAAC,EAAE,EAAE;IACnC,IAAIkL,KAAK,CAAClL,CAAC,CAAC,GAAGe,GAAG,IAAI,CAAC,EAAE;MACrBwC,IAAI,GAAG2H,KAAK,CAAClL,CAAC,CAAC;MACf;IACJ;EACJ;EACA,OAAOuD,IAAI,GAAG,EAAE,GAAG,EAAE,GAAGA,IAAI;AAChC,CAAC;AAAC,IAAA4H,QAAA,GACa/I,aAAa;AAAAgJ,OAAA,cAAAD,QAAA"}
@@ -1,3 +1,4 @@
1
+ import React from 'react';
1
2
  import { CloudControlPanelProps } from '../controls';
2
3
  import { VideoType } from '../player';
3
4
  interface VtxPlayerProps {
@@ -25,6 +26,12 @@ interface VtxPlayerProps {
25
26
  info?: Array<Array<string>>;
26
27
  /** 截图回调 */
27
28
  screenshot?: (dataURL: string) => void;
29
+ /** 重置视频大小 */
30
+ resize?: () => void;
28
31
  }
29
- export declare const LivePlayer: (props: VtxPlayerProps) => JSX.Element;
30
- export default LivePlayer;
32
+ export declare const LivePlayer: {
33
+ (props: VtxPlayerProps, selfRef: any): JSX.Element;
34
+ displayName: string;
35
+ };
36
+ declare const _default: React.ForwardRefExoticComponent<VtxPlayerProps & React.RefAttributes<unknown>>;
37
+ export default _default;
@@ -19,7 +19,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
19
19
  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; }
20
20
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
21
21
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22
- var LivePlayer = function LivePlayer(props) {
22
+ var LivePlayer = function LivePlayer(props, selfRef) {
23
23
  var url = props.url,
24
24
  enableAgent = props.enableAgent,
25
25
  _props$width = props.width,
@@ -55,6 +55,14 @@ var LivePlayer = function LivePlayer(props) {
55
55
  _useSetState2 = _slicedToArray(_useSetState, 2),
56
56
  state = _useSetState2[0],
57
57
  setState = _useSetState2[1];
58
+ (0, _react.useImperativeHandle)(selfRef, function () {
59
+ return {
60
+ resize: function resize() {
61
+ var player = playerRef.current;
62
+ player && url && player.resize();
63
+ }
64
+ };
65
+ });
58
66
  (0, _react.useEffect)(function () {
59
67
  var container = ref.current;
60
68
  if (!url || !container) {
@@ -159,6 +167,7 @@ var LivePlayer = function LivePlayer(props) {
159
167
  }));
160
168
  };
161
169
  exports.LivePlayer = LivePlayer;
162
- var _default = LivePlayer;
170
+ LivePlayer.displayName = 'live-player';
171
+ var _default = /*#__PURE__*/(0, _react.forwardRef)(LivePlayer);
163
172
  exports["default"] = _default;
164
173
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_controls","_icons","_player","_interopRequireDefault","_utils","_ahooks","_space","obj","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","isArray","LivePlayer","props","url","enableAgent","_props$width","width","_props$height","height","captureName","type","channelNum","deviceId","cloudParams","_props$showInfo","showInfo","_props$info","info","screenshot","ref","useRef","wrapRef","controlsRef","playerRef","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","_useSetState","useSetState","play","error","loading","id","guidGenerator","volume","showCloudPanel","_useSetState2","state","setState","useEffect","container","current","destroy","player","Player","then","handleCapture","e","capture","stopPropagation","handleFullScreen","resize","_jsxs","assign","className","style","children","_jsx","ErrorState","LoadingState","CloudControlPanel","InfoPanel","Space","size","align","VolumeControl","CaptureIcon","onClick","TalkControl","CloudControlIcon","active","ExitFullScreenIcon","FullScreenIcon","exports","_default"],"sources":["live-player/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useRef } from 'react';\nimport { CloudControlPanel, ErrorState, InfoPanel, LoadingState, TalkControl, VolumeControl, } from '../controls';\nimport { CaptureIcon, CloudControlIcon, ExitFullScreenIcon, FullScreenIcon } from '../icons';\nimport Player from '../player';\nimport { guidGenerator } from '../utils';\nimport { useFullscreen, useSetState } from 'ahooks';\n// import { Space } from 'antd';\nimport Space from 'antd/lib/space';\nexport const LivePlayer = (props) => {\n const { url, enableAgent, width = '100%', height = '100%', captureName, type, channelNum, deviceId, cloudParams, showInfo = false, info = [], screenshot, } = props;\n const ref = useRef(null);\n const wrapRef = useRef(null);\n const controlsRef = useRef(null);\n const playerRef = useRef();\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const [state, setState] = useSetState({\n play: false,\n error: false,\n loading: false,\n id: 'vtx_hk_player_' + guidGenerator(),\n volume: 0,\n showCloudPanel: false,\n });\n useEffect(() => {\n const container = ref.current;\n if (!url || !container) {\n playerRef.current && playerRef.current.destroy();\n return;\n }\n const player = new Player({ url, enableAgent, container, type });\n playerRef.current = player;\n setState({ loading: true, error: false });\n player\n .play()\n .then(() => setState({ play: true, error: false }))\n .catch(() => setState({ error: true }))\n .finally(() => setState({ loading: false }));\n return () => {\n player.destroy();\n setState({ error: false, loading: false, play: false });\n };\n }, [url]);\n const handleCapture = (e) => {\n const player = playerRef.current;\n player && player.capture(captureName, screenshot);\n e.stopPropagation();\n };\n const handleFullScreen = (e) => {\n toggleFullscreen();\n const player = playerRef.current;\n player && player.resize();\n e.stopPropagation();\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-player\", ref: wrapRef, style: { width, height } }, { children: [_jsx(\"div\", { ref: ref, style: { height: '100%', width: '100%' }, id: state.id }), state.error && _jsx(ErrorState, {}), state.loading && _jsx(LoadingState, {}), state.showCloudPanel && cloudParams && _jsx(CloudControlPanel, Object.assign({}, cloudParams)), _jsx(InfoPanel, { showInfo: showInfo, info: info }), _jsx(\"div\", Object.assign({ className: \"controls\", ref: controlsRef }, { children: _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(VolumeControl, { player: playerRef.current, container: controlsRef.current }), !!screenshot && _jsx(CaptureIcon, { onClick: handleCapture }), channelNum && deviceId && (_jsx(TalkControl, { player: playerRef.current, channelNum: channelNum, deviceId: deviceId })), (cloudParams === null || cloudParams === void 0 ? void 0 : cloudParams.type) !== 'none' && (_jsx(CloudControlIcon, { active: state.showCloudPanel, onClick: () => setState({ showCloudPanel: !state.showCloudPanel }) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: handleFullScreen })) : (_jsx(FullScreenIcon, { onClick: handleFullScreen }))] })) }))] })));\n};\nexport default LivePlayer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_jsxRuntime","require","_react","_controls","_icons","_player","_interopRequireDefault","_utils","_ahooks","_space","obj","__esModule","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","n","Object","prototype","toString","call","slice","constructor","name","Array","from","test","len","length","arr2","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","push","value","err","isArray","LivePlayer","props","selfRef","url","enableAgent","_props$width","width","_props$height","height","captureName","type","channelNum","deviceId","cloudParams","_props$showInfo","showInfo","_props$info","info","screenshot","ref","useRef","wrapRef","controlsRef","playerRef","_useFullscreen","useFullscreen","_useFullscreen2","isFullscreen","toggleFullscreen","_useSetState","useSetState","play","error","loading","id","guidGenerator","volume","showCloudPanel","_useSetState2","state","setState","useImperativeHandle","resize","player","current","useEffect","container","destroy","Player","then","handleCapture","e","capture","stopPropagation","handleFullScreen","_jsxs","assign","className","style","children","_jsx","ErrorState","LoadingState","CloudControlPanel","InfoPanel","Space","size","align","VolumeControl","CaptureIcon","onClick","TalkControl","CloudControlIcon","active","ExitFullScreenIcon","FullScreenIcon","exports","displayName","_default","forwardRef"],"sources":["live-player/index.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useEffect, useRef, useImperativeHandle, forwardRef } from 'react';\nimport { CloudControlPanel, ErrorState, InfoPanel, LoadingState, TalkControl, VolumeControl, } from '../controls';\nimport { CaptureIcon, CloudControlIcon, ExitFullScreenIcon, FullScreenIcon } from '../icons';\nimport Player from '../player';\nimport { guidGenerator } from '../utils';\nimport { useFullscreen, useSetState } from 'ahooks';\n// import { Space } from 'antd';\nimport Space from 'antd/lib/space';\nexport const LivePlayer = (props, selfRef) => {\n const { url, enableAgent, width = '100%', height = '100%', captureName, type, channelNum, deviceId, cloudParams, showInfo = false, info = [], screenshot, } = props;\n const ref = useRef(null);\n const wrapRef = useRef(null);\n const controlsRef = useRef(null);\n const playerRef = useRef();\n const [isFullscreen, { toggleFullscreen }] = useFullscreen(wrapRef);\n const [state, setState] = useSetState({\n play: false,\n error: false,\n loading: false,\n id: 'vtx_hk_player_' + guidGenerator(),\n volume: 0,\n showCloudPanel: false,\n });\n useImperativeHandle(selfRef, () => {\n return {\n resize: () => {\n const player = playerRef.current;\n player && url && player.resize();\n }\n };\n });\n useEffect(() => {\n const container = ref.current;\n if (!url || !container) {\n playerRef.current && playerRef.current.destroy();\n return;\n }\n const player = new Player({ url, enableAgent, container, type });\n playerRef.current = player;\n setState({ loading: true, error: false });\n player\n .play()\n .then(() => setState({ play: true, error: false }))\n .catch(() => setState({ error: true }))\n .finally(() => setState({ loading: false }));\n return () => {\n player.destroy();\n setState({ error: false, loading: false, play: false });\n };\n }, [url]);\n const handleCapture = (e) => {\n const player = playerRef.current;\n player && player.capture(captureName, screenshot);\n e.stopPropagation();\n };\n const handleFullScreen = (e) => {\n toggleFullscreen();\n const player = playerRef.current;\n player && player.resize();\n e.stopPropagation();\n };\n return (_jsxs(\"div\", Object.assign({ className: \"vtx-live-player\", ref: wrapRef, style: { width, height } }, { children: [_jsx(\"div\", { ref: ref, style: { height: '100%', width: '100%' }, id: state.id }), state.error && _jsx(ErrorState, {}), state.loading && _jsx(LoadingState, {}), state.showCloudPanel && cloudParams && _jsx(CloudControlPanel, Object.assign({}, cloudParams)), _jsx(InfoPanel, { showInfo: showInfo, info: info }), _jsx(\"div\", Object.assign({ className: \"controls\", ref: controlsRef }, { children: _jsxs(Space, Object.assign({ className: \"right\", size: 12, align: \"center\" }, { children: [_jsx(VolumeControl, { player: playerRef.current, container: controlsRef.current }), !!screenshot && _jsx(CaptureIcon, { onClick: handleCapture }), channelNum && deviceId && (_jsx(TalkControl, { player: playerRef.current, channelNum: channelNum, deviceId: deviceId })), (cloudParams === null || cloudParams === void 0 ? void 0 : cloudParams.type) !== 'none' && (_jsx(CloudControlIcon, { active: state.showCloudPanel, onClick: () => setState({ showCloudPanel: !state.showCloudPanel }) })), isFullscreen ? (_jsx(ExitFullScreenIcon, { onClick: handleFullScreen })) : (_jsx(FullScreenIcon, { onClick: handleFullScreen }))] })) }))] })));\n};\nLivePlayer.displayName = 'live-player';\nexport default forwardRef(LivePlayer);\n"],"mappings":";;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,OAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AAEA,IAAAQ,MAAA,GAAAH,sBAAA,CAAAL,OAAA;AAAmC,SAAAK,uBAAAI,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAAA,SAAAE,eAAAC,GAAA,EAAAC,CAAA,WAAAC,eAAA,CAAAF,GAAA,KAAAG,qBAAA,CAAAH,GAAA,EAAAC,CAAA,KAAAG,2BAAA,CAAAJ,GAAA,EAAAC,CAAA,KAAAI,gBAAA;AAAA,SAAAA,iBAAA,cAAAC,SAAA;AAAA,SAAAF,4BAAAG,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAAC,MAAA,CAAAC,SAAA,CAAAC,QAAA,CAAAC,IAAA,CAAAP,CAAA,EAAAQ,KAAA,aAAAL,CAAA,iBAAAH,CAAA,CAAAS,WAAA,EAAAN,CAAA,GAAAH,CAAA,CAAAS,WAAA,CAAAC,IAAA,MAAAP,CAAA,cAAAA,CAAA,mBAAAQ,KAAA,CAAAC,IAAA,CAAAZ,CAAA,OAAAG,CAAA,+DAAAU,IAAA,CAAAV,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAT,GAAA,EAAAqB,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAArB,GAAA,CAAAsB,MAAA,EAAAD,GAAA,GAAArB,GAAA,CAAAsB,MAAA,WAAArB,CAAA,MAAAsB,IAAA,OAAAL,KAAA,CAAAG,GAAA,GAAApB,CAAA,GAAAoB,GAAA,EAAApB,CAAA,IAAAsB,IAAA,CAAAtB,CAAA,IAAAD,GAAA,CAAAC,CAAA,UAAAsB,IAAA;AAAA,SAAApB,sBAAAH,GAAA,EAAAC,CAAA,QAAAuB,EAAA,WAAAxB,GAAA,gCAAAyB,MAAA,IAAAzB,GAAA,CAAAyB,MAAA,CAAAC,QAAA,KAAA1B,GAAA,4BAAAwB,EAAA,QAAAG,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,EAAA,EAAAC,IAAA,OAAAC,EAAA,OAAAC,EAAA,iBAAAJ,EAAA,IAAAL,EAAA,GAAAA,EAAA,CAAAV,IAAA,CAAAd,GAAA,GAAAkC,IAAA,QAAAjC,CAAA,QAAAU,MAAA,CAAAa,EAAA,MAAAA,EAAA,UAAAQ,EAAA,uBAAAA,EAAA,IAAAL,EAAA,GAAAE,EAAA,CAAAf,IAAA,CAAAU,EAAA,GAAAW,IAAA,MAAAJ,IAAA,CAAAK,IAAA,CAAAT,EAAA,CAAAU,KAAA,GAAAN,IAAA,CAAAT,MAAA,KAAArB,CAAA,GAAA+B,EAAA,iBAAAM,GAAA,IAAAL,EAAA,OAAAL,EAAA,GAAAU,GAAA,yBAAAN,EAAA,YAAAR,EAAA,eAAAM,EAAA,GAAAN,EAAA,cAAAb,MAAA,CAAAmB,EAAA,MAAAA,EAAA,2BAAAG,EAAA,QAAAL,EAAA,aAAAG,IAAA;AAAA,SAAA7B,gBAAAF,GAAA,QAAAkB,KAAA,CAAAqB,OAAA,CAAAvC,GAAA,UAAAA,GAAA;AAC5B,IAAMwC,UAAU,GAAG,SAAbA,UAAUA,CAAIC,KAAK,EAAEC,OAAO,EAAK;EAC1C,IAAQC,GAAG,GAAmJF,KAAK,CAA3JE,GAAG;IAAEC,WAAW,GAAsIH,KAAK,CAAtJG,WAAW;IAAAC,YAAA,GAAsIJ,KAAK,CAAzIK,KAAK;IAALA,KAAK,GAAAD,YAAA,cAAG,MAAM,GAAAA,YAAA;IAAAE,aAAA,GAAsHN,KAAK,CAAzHO,MAAM;IAANA,MAAM,GAAAD,aAAA,cAAG,MAAM,GAAAA,aAAA;IAAEE,WAAW,GAAwFR,KAAK,CAAxGQ,WAAW;IAAEC,IAAI,GAAkFT,KAAK,CAA3FS,IAAI;IAAEC,UAAU,GAAsEV,KAAK,CAArFU,UAAU;IAAEC,QAAQ,GAA4DX,KAAK,CAAzEW,QAAQ;IAAEC,WAAW,GAA+CZ,KAAK,CAA/DY,WAAW;IAAAC,eAAA,GAA+Cb,KAAK,CAAlDc,QAAQ;IAARA,QAAQ,GAAAD,eAAA,cAAG,KAAK,GAAAA,eAAA;IAAAE,WAAA,GAA6Bf,KAAK,CAAhCgB,IAAI;IAAJA,IAAI,GAAAD,WAAA,cAAG,EAAE,GAAAA,WAAA;IAAEE,UAAU,GAAMjB,KAAK,CAArBiB,UAAU;EACxJ,IAAMC,GAAG,GAAG,IAAAC,aAAM,EAAC,IAAI,CAAC;EACxB,IAAMC,OAAO,GAAG,IAAAD,aAAM,EAAC,IAAI,CAAC;EAC5B,IAAME,WAAW,GAAG,IAAAF,aAAM,EAAC,IAAI,CAAC;EAChC,IAAMG,SAAS,GAAG,IAAAH,aAAM,GAAE;EAC1B,IAAAI,cAAA,GAA6C,IAAAC,qBAAa,EAACJ,OAAO,CAAC;IAAAK,eAAA,GAAAnE,cAAA,CAAAiE,cAAA;IAA5DG,YAAY,GAAAD,eAAA;IAAIE,gBAAgB,GAAAF,eAAA,IAAhBE,gBAAgB;EACvC,IAAAC,YAAA,GAA0B,IAAAC,mBAAW,EAAC;MAClCC,IAAI,EAAE,KAAK;MACXC,KAAK,EAAE,KAAK;MACZC,OAAO,EAAE,KAAK;MACdC,EAAE,EAAE,gBAAgB,GAAG,IAAAC,oBAAa,GAAE;MACtCC,MAAM,EAAE,CAAC;MACTC,cAAc,EAAE;IACpB,CAAC,CAAC;IAAAC,aAAA,GAAA/E,cAAA,CAAAsE,YAAA;IAPKU,KAAK,GAAAD,aAAA;IAAEE,QAAQ,GAAAF,aAAA;EAQtB,IAAAG,0BAAmB,EAACvC,OAAO,EAAE,YAAM;IAC/B,OAAO;MACHwC,MAAM,EAAE,SAAAA,OAAA,EAAM;QACV,IAAMC,MAAM,GAAGpB,SAAS,CAACqB,OAAO;QAChCD,MAAM,IAAIxC,GAAG,IAAIwC,MAAM,CAACD,MAAM,EAAE;MACpC;IACJ,CAAC;EACL,CAAC,CAAC;EACF,IAAAG,gBAAS,EAAC,YAAM;IACZ,IAAMC,SAAS,GAAG3B,GAAG,CAACyB,OAAO;IAC7B,IAAI,CAACzC,GAAG,IAAI,CAAC2C,SAAS,EAAE;MACpBvB,SAAS,CAACqB,OAAO,IAAIrB,SAAS,CAACqB,OAAO,CAACG,OAAO,EAAE;MAChD;IACJ;IACA,IAAMJ,MAAM,GAAG,IAAIK,kBAAM,CAAC;MAAE7C,GAAG,EAAHA,GAAG;MAAEC,WAAW,EAAXA,WAAW;MAAE0C,SAAS,EAATA,SAAS;MAAEpC,IAAI,EAAJA;IAAK,CAAC,CAAC;IAChEa,SAAS,CAACqB,OAAO,GAAGD,MAAM;IAC1BH,QAAQ,CAAC;MAAEP,OAAO,EAAE,IAAI;MAAED,KAAK,EAAE;IAAM,CAAC,CAAC;IACzCW,MAAM,CACDZ,IAAI,EAAE,CACNkB,IAAI,CAAC;MAAA,OAAMT,QAAQ,CAAC;QAAET,IAAI,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAM,CAAC,CAAC;IAAA,EAAC,SAC7C,CAAC;MAAA,OAAMQ,QAAQ,CAAC;QAAER,KAAK,EAAE;MAAK,CAAC,CAAC;IAAA,EAAC,WAC/B,CAAC;MAAA,OAAMQ,QAAQ,CAAC;QAAEP,OAAO,EAAE;MAAM,CAAC,CAAC;IAAA,EAAC;IAChD,OAAO,YAAM;MACTU,MAAM,CAACI,OAAO,EAAE;MAChBP,QAAQ,CAAC;QAAER,KAAK,EAAE,KAAK;QAAEC,OAAO,EAAE,KAAK;QAAEF,IAAI,EAAE;MAAM,CAAC,CAAC;IAC3D,CAAC;EACL,CAAC,EAAE,CAAC5B,GAAG,CAAC,CAAC;EACT,IAAM+C,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,CAAC,EAAK;IACzB,IAAMR,MAAM,GAAGpB,SAAS,CAACqB,OAAO;IAChCD,MAAM,IAAIA,MAAM,CAACS,OAAO,CAAC3C,WAAW,EAAES,UAAU,CAAC;IACjDiC,CAAC,CAACE,eAAe,EAAE;EACvB,CAAC;EACD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIH,CAAC,EAAK;IAC5BvB,gBAAgB,EAAE;IAClB,IAAMe,MAAM,GAAGpB,SAAS,CAACqB,OAAO;IAChCD,MAAM,IAAIA,MAAM,CAACD,MAAM,EAAE;IACzBS,CAAC,CAACE,eAAe,EAAE;EACvB,CAAC;EACD,OAAQ,IAAAE,gBAAK,EAAC,KAAK,EAAEpF,MAAM,CAACqF,MAAM,CAAC;IAAEC,SAAS,EAAE,iBAAiB;IAAEtC,GAAG,EAAEE,OAAO;IAAEqC,KAAK,EAAE;MAAEpD,KAAK,EAALA,KAAK;MAAEE,MAAM,EAANA;IAAO;EAAE,CAAC,EAAE;IAAEmD,QAAQ,EAAE,CAAC,IAAAC,eAAI,EAAC,KAAK,EAAE;MAAEzC,GAAG,EAAEA,GAAG;MAAEuC,KAAK,EAAE;QAAElD,MAAM,EAAE,MAAM;QAAEF,KAAK,EAAE;MAAO,CAAC;MAAE4B,EAAE,EAAEK,KAAK,CAACL;IAAG,CAAC,CAAC,EAAEK,KAAK,CAACP,KAAK,IAAI,IAAA4B,eAAI,EAACC,oBAAU,EAAE,CAAC,CAAC,CAAC,EAAEtB,KAAK,CAACN,OAAO,IAAI,IAAA2B,eAAI,EAACE,sBAAY,EAAE,CAAC,CAAC,CAAC,EAAEvB,KAAK,CAACF,cAAc,IAAIxB,WAAW,IAAI,IAAA+C,eAAI,EAACG,2BAAiB,EAAE5F,MAAM,CAACqF,MAAM,CAAC,CAAC,CAAC,EAAE3C,WAAW,CAAC,CAAC,EAAE,IAAA+C,eAAI,EAACI,mBAAS,EAAE;MAAEjD,QAAQ,EAAEA,QAAQ;MAAEE,IAAI,EAAEA;IAAK,CAAC,CAAC,EAAE,IAAA2C,eAAI,EAAC,KAAK,EAAEzF,MAAM,CAACqF,MAAM,CAAC;MAAEC,SAAS,EAAE,UAAU;MAAEtC,GAAG,EAAEG;IAAY,CAAC,EAAE;MAAEqC,QAAQ,EAAE,IAAAJ,gBAAK,EAACU,iBAAK,EAAE9F,MAAM,CAACqF,MAAM,CAAC;QAAEC,SAAS,EAAE,OAAO;QAAES,IAAI,EAAE,EAAE;QAAEC,KAAK,EAAE;MAAS,CAAC,EAAE;QAAER,QAAQ,EAAE,CAAC,IAAAC,eAAI,EAACQ,uBAAa,EAAE;UAAEzB,MAAM,EAAEpB,SAAS,CAACqB,OAAO;UAAEE,SAAS,EAAExB,WAAW,CAACsB;QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC1B,UAAU,IAAI,IAAA0C,eAAI,EAACS,kBAAW,EAAE;UAAEC,OAAO,EAAEpB;QAAc,CAAC,CAAC,EAAEvC,UAAU,IAAIC,QAAQ,IAAK,IAAAgD,eAAI,EAACW,qBAAW,EAAE;UAAE5B,MAAM,EAAEpB,SAAS,CAACqB,OAAO;UAAEjC,UAAU,EAAEA,UAAU;UAAEC,QAAQ,EAAEA;QAAS,CAAC,CAAE,EAAE,CAACC,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,WAAW,CAACH,IAAI,MAAM,MAAM,IAAK,IAAAkD,eAAI,EAACY,uBAAgB,EAAE;UAAEC,MAAM,EAAElC,KAAK,CAACF,cAAc;UAAEiC,OAAO,EAAE,SAAAA,QAAA;YAAA,OAAM9B,QAAQ,CAAC;cAAEH,cAAc,EAAE,CAACE,KAAK,CAACF;YAAe,CAAC,CAAC;UAAA;QAAC,CAAC,CAAE,EAAEV,YAAY,GAAI,IAAAiC,eAAI,EAACc,yBAAkB,EAAE;UAAEJ,OAAO,EAAEhB;QAAiB,CAAC,CAAC,GAAK,IAAAM,eAAI,EAACe,qBAAc,EAAE;UAAEL,OAAO,EAAEhB;QAAiB,CAAC,CAAE;MAAE,CAAC,CAAC;IAAE,CAAC,CAAC,CAAC;EAAE,CAAC,CAAC,CAAC;AACxtC,CAAC;AAACsB,OAAA,CAAA5E,UAAA,GAAAA,UAAA;AACFA,UAAU,CAAC6E,WAAW,GAAG,aAAa;AAAC,IAAAC,QAAA,gBACxB,IAAAC,iBAAU,EAAC/E,UAAU,CAAC;AAAA4E,OAAA,cAAAE,QAAA"}
@@ -1,11 +1,12 @@
1
1
  import moment from 'moment';
2
2
  declare global {
3
3
  interface Window {
4
+ JSPluginH5: any;
4
5
  JSPlugin: any;
5
6
  }
6
7
  }
7
8
  /** 视频流格式 */
8
- export type VideoType = 'flv' | 'hls' | 'hk_ws' | 'hkcar_ws';
9
+ export type VideoType = 'flv' | 'hls' | 'hk_ws' | 'hkcar_ws' | string;
9
10
  interface ConstructorParams {
10
11
  url: string;
11
12
  /**是否开启代理 */
@@ -62,12 +62,13 @@ var Player = /*#__PURE__*/function () {
62
62
  type = params.type,
63
63
  startTime = params.startTime,
64
64
  endTime = params.endTime;
65
- var playerParams = (0, _utils.getPlayerParams)(url, enableAgent, live);
66
- this.type = type || playerParams.type; // 如果不传递type,则通过url解析type
65
+ var playerParams = (0, _utils.getPlayerParams)(type, url, enableAgent, live);
66
+ this.type = type || playerParams.type; // 如果不传递type,则通过url解析type值,1.1.2之后默认都传type
67
67
  this.url = playerParams.url;
68
68
  this.enableAgent = enableAgent;
69
69
  this.startTime = startTime;
70
70
  this.endTime = endTime;
71
+ console.log(this.type, this.url);
71
72
  var video = document.createElement('video'); // 生成video元素
72
73
  video.className = 'vtx-player-video';
73
74
  video.muted = true; //设置静音
@@ -91,9 +92,9 @@ var Player = /*#__PURE__*/function () {
91
92
  }
92
93
  // 处理海康视频
93
94
  if (this.type === 'hk_ws') {
94
- this.player = new window.JSPlugin({
95
+ this.player = new window.JSPluginH5({
95
96
  szId: container.id,
96
- szBasePath: './',
97
+ szBasePath: './resources/',
97
98
  iMaxSplit: 1,
98
99
  iCurrentSplit: 1
99
100
  });
@@ -101,7 +102,7 @@ var Player = /*#__PURE__*/function () {
101
102
  this.video = wrapDiv.getElementsByTagName('video')[0];
102
103
  }
103
104
  // 处理海康视频
104
- if (this.type === 'hkcar_ws') {
105
+ if (this.type === 'hkcar_ws' && (url.startsWith('ws://') || url.startsWith('wss://'))) {
105
106
  var _wrapDiv = document.getElementById(container.id);
106
107
  this.player = new window.JSPlugin({
107
108
  szId: container.id,
@@ -122,7 +123,6 @@ var Player = /*#__PURE__*/function () {
122
123
  _createClass(Player, [{
123
124
  key: "play",
124
125
  value: function play() {
125
- console.log(this.url, this.type);
126
126
  if (this.type === 'flv') {
127
127
  var player = this.player;
128
128
  return player.play();