@vtx/player 1.4.10 → 1.4.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/bd/PlayerManager.d.ts +89 -0
- package/lib/bd/PlayerManager.js +353 -0
- package/lib/bd/PlayerManager.js.map +1 -0
- package/lib/live-control-v2/index.d.ts +2 -0
- package/lib/live-control-v2/index.js +1 -1
- package/lib/live-control-v2/index.js.map +1 -1
- package/lib/live-player/index.d.ts +4 -0
- package/lib/live-player/index.js +4 -0
- package/lib/live-player/index.js.map +1 -1
- package/lib/player/index.d.ts +6 -2
- package/lib/player/index.js +81 -33
- package/lib/player/index.js.map +1 -1
- package/lib/utils/index.d.ts +2 -0
- package/lib/utils/index.js +43 -1
- package/lib/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","Array","fill","channelNum","LiveControlV2","forwardRef","props","ref","height","width","onExpandChange","onPlayingChannelChange","onVideoClose","onVideoCloseAll","onCloseVideoInRotation","extraDom","gridChange","onScreenshot","scale","useSetState","expand","grid","activeIndex","channels","state","setState","playRefs","useRef","wrapRef","latestGrid","useFullscreen","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","adapt","getGrid","length","i","Number","push","channelLength","filter","v","map","item","_a","isRepeat","find","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","handleExpand","slice","resizeAll","updateScale","timer","setTimeout","Object","values","forEach","player","resize","clearTimeout","closeVideo","currChannels","getGridItems","items","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","name","deviceName","channelName","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","deviceIp","devicePort","captureName","deviceId","deviceCode","streamType","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","len"],"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, onVideoCloseAll, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, scale, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: 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 const channelLength = channelRef.current.filter((v) => v.channelNum).length + channels.length;\n adapt && (grid = getGrid(channelLength));\n newChannels = [...new Array(grid)].map((item, index) => {\n var _a;\n if ((_a = channelRef.current[index]) === null || _a === void 0 ? void 0 : _a.channelNum) {\n return channelRef.current[index];\n }\n return { channelNum: '' };\n });\n for (let i = 0; i < channels.length; i++) {\n const isRepeat = newChannels.find((item) => { var _a; return (item === null || item === void 0 ? void 0 : item.channelNum) === ((_a = channels[i]) === null || _a === void 0 ? void 0 : _a.channelNum); });\n // 如果之前在播放,则不需重复打开新窗口\n if (!isRepeat) {\n const index = getActiveIndex(newChannels, grid, activeIndex);\n // 如果相等,说明没有空闲窗口\n // if (index === activeIndex) {\n // break;\n // }\n if (activeIndex === grid)\n break;\n newChannels[index] = channels[i] || { channelNum: '' };\n activeIndex = index + 1;\n }\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 channelRef.current = DEFAULT_CHANNELS;\n onVideoCloseAll && onVideoCloseAll();\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 currChannels = [...channelRef.current];\n const newChannels = [...channelRef.current];\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n onVideoClose && onVideoClose(currChannels[i], 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) || '', deviceIp: data.deviceIp, devicePort: data.devicePort, captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, deviceCode: data.deviceCode, streamType: data.streamType, 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 === null || data === void 0 ? void 0 : data.ptzType) || 4),\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; 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":["DEFAULT_GRID","DEFAULT_ACTIVE","DEFAULT_CHANNELS","Array","fill","channelNum","LiveControlV2","forwardRef","props","ref","height","width","onExpandChange","onPlayingChannelChange","onVideoClose","onVideoCloseAll","onCloseVideoInRotation","extraDom","gridChange","onScreenshot","scale","useSetState","expand","grid","activeIndex","channels","state","setState","playRefs","useRef","wrapRef","latestGrid","useFullscreen","isFullscreen","toggleFullscreen","channelRef","useImperativeHandle","setGrid","updateGrid","load","channel","index","current","findIndex","c","channelId","newChannels","getActiveIndex","multiLoad","init","adapt","getGrid","length","i","Number","push","channelLength","filter","v","map","item","_a","isRepeat","find","unLoad","updateChannels","unLoadAll","handleCloseAll","useEffect","handleExpand","slice","resizeAll","updateScale","timer","setTimeout","Object","values","forEach","player","resize","clearTimeout","closeVideo","currChannels","getGridItems","items","element","_jsx","GridItem","active","onClick","onClose","_jsxs","assign","className","style","children","Space","size","align","display","FoldIcon","ExpandIcon","CloseAllIcon","SplitScreen","GridIcon","DownOutlined","UpOutlined","disabled","VideoScale","setScale","OccupyingScreenIcon","ExitFullScreenIcon","FullScreenIcon","displayName","empty","useRequest","getPreviewUrl","ready","refreshDeps","data","loading","name","deviceName","channelName","gridItemRef","gridItemSize","useSize","handlePtzType","type","types","_Fragment","PlayerHeader","VtxLivePlayer","url","deviceIp","devicePort","captureName","deviceId","deviceCode","streamType","showInfo","info","screenshot","cloudParams","query","tenantId","getUrlParam","ptzType","currentIndex","currentChannels","grids","len"],"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, onVideoCloseAll, onCloseVideoInRotation, extraDom, gridChange = true, onScreenshot, scale, } = props;\n const [state, setState] = useSetState({\n expand: true,\n grid: DEFAULT_GRID,\n activeIndex: DEFAULT_ACTIVE,\n channels: DEFAULT_CHANNELS,\n scale: 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 const channelLength = channelRef.current.filter((v) => v.channelNum).length + channels.length;\n adapt && (grid = getGrid(channelLength));\n newChannels = [...new Array(grid)].map((item, index) => {\n var _a;\n if ((_a = channelRef.current[index]) === null || _a === void 0 ? void 0 : _a.channelNum) {\n return channelRef.current[index];\n }\n return { channelNum: '' };\n });\n for (let i = 0; i < channels.length; i++) {\n const isRepeat = newChannels.find((item) => { var _a; return (item === null || item === void 0 ? void 0 : item.channelNum) === ((_a = channels[i]) === null || _a === void 0 ? void 0 : _a.channelNum); });\n // 如果之前在播放,则不需重复打开新窗口\n if (!isRepeat) {\n const index = getActiveIndex(newChannels, grid, activeIndex);\n // 如果相等,说明没有空闲窗口\n // if (index === activeIndex) {\n // break;\n // }\n if (activeIndex === grid)\n break;\n newChannels[index] = channels[i] || { channelNum: '' };\n activeIndex = index + 1;\n }\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 channelRef.current = DEFAULT_CHANNELS;\n onVideoCloseAll && onVideoCloseAll();\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 currChannels = [...channelRef.current];\n const newChannels = [...channelRef.current];\n newChannels[i] = { channelNum: '' };\n updateChannels(newChannels);\n onVideoClose && onVideoClose(currChannels[i], 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) || 'bd', deviceIp: data.deviceIp, devicePort: data.devicePort, captureName: name, deviceId: data.deviceId, channelNum: data.channelNum, deviceCode: data.deviceCode, streamType: data.streamType, 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 === null || data === void 0 ? void 0 : data.ptzType) || 4),\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; 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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"}
|
package/lib/live-player/index.js
CHANGED
|
@@ -77,6 +77,8 @@ var LivePlayer = function LivePlayer(props, selfRef) {
|
|
|
77
77
|
var url = props.url,
|
|
78
78
|
deviceIp = props.deviceIp,
|
|
79
79
|
devicePort = props.devicePort,
|
|
80
|
+
userName = props.userName,
|
|
81
|
+
password = props.password,
|
|
80
82
|
enableAgent = props.enableAgent,
|
|
81
83
|
_props$width = props.width,
|
|
82
84
|
width = _props$width === void 0 ? '100%' : _props$width,
|
|
@@ -165,6 +167,8 @@ var LivePlayer = function LivePlayer(props, selfRef) {
|
|
|
165
167
|
deviceIp: deviceIp,
|
|
166
168
|
deviceId: deviceId,
|
|
167
169
|
devicePort: devicePort,
|
|
170
|
+
userName: userName,
|
|
171
|
+
password: password,
|
|
168
172
|
streamType: streamType,
|
|
169
173
|
deviceCode: deviceCode,
|
|
170
174
|
channelNum: channelNum,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","LivePlayer","props","selfRef","url","deviceIp","devicePort","enableAgent","width","height","captureName","type","channelNum","deviceId","streamType","deviceCode","cloudParams","showInfo","info","screenshot","loaded","ref","useRef","wrapRef","controlsRef","playerRef","useFullscreen","isFullscreen","toggleFullscreen","useSetState","play","error","loading","id","guidGenerator","volume","showCloudPanel","state","setState","useImperativeHandle","resize","player","current","useEffect","_a","container","destroy","API","getToken","token","localStorage","setItem","Player","handleCapture","capture","stopPropagation","handleFullScreen","_jsxs","Object","assign","className","style","children","_jsx","ErrorState","LoadingState","CloudControlPanel","InfoPanel","Space","size","align","VolumeControl","CaptureIcon","onClick","TalkControl","CloudControlIcon","active","ExitFullScreenIcon","FullScreenIcon","forwardRef"],"sources":["live-player/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { CloudControlPanel, ErrorState, InfoPanel, LoadingState, TalkControl, VolumeControl, } from '../controls';\nimport API from '../icc/api';\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';\nconst LivePlayer = (props, selfRef) => {\n const { url, deviceIp, devicePort, enableAgent, width = '100%', height = '100%', captureName, type, channelNum, deviceId, streamType, deviceCode, cloudParams, showInfo = false, info = [], screenshot, loaded, } = 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 var _a;\n const container = ref.current;\n if (!url || !container) {\n (_a = playerRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n return;\n }\n let player = null;\n (() => __awaiter(void 0, void 0, void 0, function* () {\n // 如果是icc_ws类型,需要获取token\n if (type === 'icc_ws') {\n const token = yield API.getToken({\n deviceId,\n });\n localStorage.setItem('accessToken', token);\n }\n player = yield new Player({\n url,\n deviceIp,\n deviceId,\n devicePort,\n streamType,\n deviceCode,\n channelNum,\n enableAgent,\n container,\n type,\n });\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(() => {\n setState({ loading: false });\n loaded && loaded();\n });\n }))();\n return () => {\n player === null || player === void 0 ? void 0 : 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};\n// LivePlayer.displayName = 'live-player';\nexport default forwardRef(LivePlayer);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","Promise","reject","fulfilled","step","next","e","rejected","result","done","then","apply","LivePlayer","props","selfRef","url","deviceIp","devicePort","userName","password","enableAgent","width","height","captureName","type","channelNum","deviceId","streamType","deviceCode","cloudParams","showInfo","info","screenshot","loaded","ref","useRef","wrapRef","controlsRef","playerRef","useFullscreen","isFullscreen","toggleFullscreen","useSetState","play","error","loading","id","guidGenerator","volume","showCloudPanel","state","setState","useImperativeHandle","resize","player","current","useEffect","_a","container","destroy","API","getToken","token","localStorage","setItem","Player","handleCapture","capture","stopPropagation","handleFullScreen","_jsxs","Object","assign","className","style","children","_jsx","ErrorState","LoadingState","CloudControlPanel","InfoPanel","Space","size","align","VolumeControl","CaptureIcon","onClick","TalkControl","CloudControlIcon","active","ExitFullScreenIcon","FullScreenIcon","forwardRef"],"sources":["live-player/index.js"],"sourcesContent":["var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';\nimport { CloudControlPanel, ErrorState, InfoPanel, LoadingState, TalkControl, VolumeControl, } from '../controls';\nimport API from '../icc/api';\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';\nconst LivePlayer = (props, selfRef) => {\n const { url, deviceIp, devicePort, userName, password, enableAgent, width = '100%', height = '100%', captureName, type, channelNum, deviceId, streamType, deviceCode, cloudParams, showInfo = false, info = [], screenshot, loaded, } = 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 var _a;\n const container = ref.current;\n if (!url || !container) {\n (_a = playerRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n return;\n }\n let player = null;\n (() => __awaiter(void 0, void 0, void 0, function* () {\n // 如果是icc_ws类型,需要获取token\n if (type === 'icc_ws') {\n const token = yield API.getToken({\n deviceId,\n });\n localStorage.setItem('accessToken', token);\n }\n player = yield new Player({\n url,\n deviceIp,\n deviceId,\n devicePort,\n userName,\n password,\n streamType,\n deviceCode,\n channelNum,\n enableAgent,\n container,\n type,\n });\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(() => {\n setState({ loading: false });\n loaded && loaded();\n });\n }))();\n return () => {\n player === null || player === void 0 ? void 0 : 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};\n// LivePlayer.displayName = 'live-player';\nexport default forwardRef(LivePlayer);\n"],"mappings":"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"}
|
package/lib/player/index.d.ts
CHANGED
|
@@ -6,15 +6,19 @@ declare global {
|
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
/** 视频流格式 */
|
|
9
|
-
export declare type VideoType = 'flv' | 'hls' | 'hk_ws' | 'hkcar_ws' | 'icc_ws' | 'webrtc' | 'h264' | string;
|
|
9
|
+
export declare type VideoType = 'flv' | 'hls' | 'hk_ws' | 'hkcar_ws' | 'icc_ws' | 'webrtc' | 'h264' | 'bd' | string;
|
|
10
10
|
interface ConstructorParams {
|
|
11
|
-
url
|
|
11
|
+
url?: string;
|
|
12
12
|
/** 设备id */
|
|
13
13
|
deviceId?: string;
|
|
14
14
|
/** 服务器地址 */
|
|
15
15
|
deviceIp?: string;
|
|
16
16
|
/** 服务器端口 */
|
|
17
17
|
devicePort?: string;
|
|
18
|
+
/** 服务器用户名 */
|
|
19
|
+
userName?: string;
|
|
20
|
+
/** 服务器密码 */
|
|
21
|
+
password?: string;
|
|
18
22
|
/** 主/子码流 */
|
|
19
23
|
streamType?: '0' | '1';
|
|
20
24
|
/** 通道号 */
|
package/lib/player/index.js
CHANGED
|
@@ -7,13 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
9
|
|
|
10
|
-
var _PlayerManager = _interopRequireDefault(require("../
|
|
10
|
+
var _PlayerManager = _interopRequireDefault(require("../bd/PlayerManager"));
|
|
11
11
|
|
|
12
|
-
var _PlayerManager2 = _interopRequireDefault(require("../
|
|
12
|
+
var _PlayerManager2 = _interopRequireDefault(require("../h264/PlayerManager"));
|
|
13
|
+
|
|
14
|
+
var _PlayerManager3 = _interopRequireDefault(require("../icc/PlayerManager"));
|
|
13
15
|
|
|
14
16
|
var _utils = require("../utils");
|
|
15
17
|
|
|
16
|
-
var
|
|
18
|
+
var _PlayerManager4 = _interopRequireDefault(require("../webrtc/PlayerManager"));
|
|
17
19
|
|
|
18
20
|
var _flv = _interopRequireDefault(require("flv.js"));
|
|
19
21
|
|
|
@@ -169,7 +171,7 @@ var Player = /*#__PURE__*/function () {
|
|
|
169
171
|
dd.removeChild(dd.firstChild);
|
|
170
172
|
}
|
|
171
173
|
|
|
172
|
-
this.player = new
|
|
174
|
+
this.player = new _PlayerManager3["default"]({
|
|
173
175
|
ip: window.location.protocol === 'http:' ? deviceIp : "".concat(deviceIp || '', ":").concat(devicePort || ''),
|
|
174
176
|
el: container.id,
|
|
175
177
|
type: live ? 'real' : 'record',
|
|
@@ -186,7 +188,7 @@ var Player = /*#__PURE__*/function () {
|
|
|
186
188
|
var id = "".concat(container.id, "_").concat(Date.now());
|
|
187
189
|
video.id = id;
|
|
188
190
|
container.appendChild(video);
|
|
189
|
-
this.player = new
|
|
191
|
+
this.player = new _PlayerManager4["default"]({
|
|
190
192
|
el: id,
|
|
191
193
|
url: this.url,
|
|
192
194
|
type: live
|
|
@@ -201,11 +203,23 @@ var Player = /*#__PURE__*/function () {
|
|
|
201
203
|
var _id = 'playerh264';
|
|
202
204
|
video.id = _id;
|
|
203
205
|
container.appendChild(video);
|
|
204
|
-
this.player = new
|
|
206
|
+
this.player = new _PlayerManager2["default"]({
|
|
205
207
|
id: _id,
|
|
206
208
|
url: this.url
|
|
207
209
|
});
|
|
208
210
|
}
|
|
211
|
+
|
|
212
|
+
if (this.type === 'bd') {
|
|
213
|
+
// const path = './bd/';
|
|
214
|
+
// loadJs(path + 'js/flv.min.js');
|
|
215
|
+
// loadJs(path + 'js/DPlayer.min.js');
|
|
216
|
+
// loadJs(path + 'js/cmsv6player.min.js');
|
|
217
|
+
this.player = new _PlayerManager["default"]({
|
|
218
|
+
el: container.id,
|
|
219
|
+
type: live,
|
|
220
|
+
url: this.url
|
|
221
|
+
});
|
|
222
|
+
}
|
|
209
223
|
}
|
|
210
224
|
/** 播放 */
|
|
211
225
|
|
|
@@ -251,6 +265,12 @@ var Player = /*#__PURE__*/function () {
|
|
|
251
265
|
_player3.play();
|
|
252
266
|
}
|
|
253
267
|
|
|
268
|
+
if (this.type === 'bd') {
|
|
269
|
+
var _player4 = this.player;
|
|
270
|
+
|
|
271
|
+
_player4.playRealVideo();
|
|
272
|
+
}
|
|
273
|
+
|
|
254
274
|
return Promise.resolve();
|
|
255
275
|
}
|
|
256
276
|
/** 回放 */
|
|
@@ -268,9 +288,9 @@ var Player = /*#__PURE__*/function () {
|
|
|
268
288
|
}, 1, (0, _utils.getHKTimeString)(this.startTime), (0, _utils.getHKTimeString)(this.endTime));
|
|
269
289
|
return result;
|
|
270
290
|
} else if (this.type === 'icc_ws') {
|
|
271
|
-
var
|
|
291
|
+
var _player5 = this.player;
|
|
272
292
|
return new Promise(function (resolve) {
|
|
273
|
-
|
|
293
|
+
_player5.playRecordVideo({
|
|
274
294
|
channelList: [{
|
|
275
295
|
id: _this.deviceCode + '$1$0$' + _this.channelNum
|
|
276
296
|
}],
|
|
@@ -299,27 +319,27 @@ var Player = /*#__PURE__*/function () {
|
|
|
299
319
|
}
|
|
300
320
|
|
|
301
321
|
if (this.type === 'hls') {
|
|
302
|
-
var
|
|
322
|
+
var _player6 = this.player;
|
|
303
323
|
|
|
304
|
-
|
|
324
|
+
_player6.destroy();
|
|
305
325
|
|
|
306
326
|
this.player = null;
|
|
307
327
|
this.video.remove();
|
|
308
328
|
}
|
|
309
329
|
|
|
310
330
|
if (this.type === 'hk_ws') {
|
|
311
|
-
var
|
|
331
|
+
var _player7 = this.player;
|
|
312
332
|
|
|
313
|
-
|
|
333
|
+
_player7.JS_Stop(1);
|
|
314
334
|
|
|
315
335
|
var dd = document.getElementById(this.containerId);
|
|
316
336
|
dd && dd.childNodes && dd.childNodes[0] && dd.removeChild(dd.childNodes[0]);
|
|
317
337
|
}
|
|
318
338
|
|
|
319
339
|
if (this.type === 'hkcar_ws') {
|
|
320
|
-
var
|
|
340
|
+
var _player8 = this.player;
|
|
321
341
|
|
|
322
|
-
|
|
342
|
+
_player8.JS_DestroyWorker();
|
|
323
343
|
|
|
324
344
|
var _dd3 = document.getElementById(this.containerId);
|
|
325
345
|
|
|
@@ -327,21 +347,27 @@ var Player = /*#__PURE__*/function () {
|
|
|
327
347
|
}
|
|
328
348
|
|
|
329
349
|
if (this.type === 'icc_ws') {
|
|
330
|
-
var
|
|
350
|
+
var _player9 = this.player;
|
|
331
351
|
|
|
332
|
-
|
|
352
|
+
_player9.close();
|
|
333
353
|
}
|
|
334
354
|
|
|
335
355
|
if (this.type === 'webrtc') {
|
|
336
|
-
var
|
|
356
|
+
var _player10 = this.player;
|
|
337
357
|
|
|
338
|
-
|
|
358
|
+
_player10.close();
|
|
339
359
|
}
|
|
340
360
|
|
|
341
361
|
if (this.type === 'h264') {
|
|
342
|
-
var
|
|
362
|
+
var _player11 = this.player;
|
|
343
363
|
|
|
344
|
-
|
|
364
|
+
_player11.close();
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
if (this.type === 'bd') {
|
|
368
|
+
var _player12 = this.player;
|
|
369
|
+
|
|
370
|
+
_player12.close(0);
|
|
345
371
|
}
|
|
346
372
|
}
|
|
347
373
|
/** 截图 */
|
|
@@ -375,9 +401,9 @@ var Player = /*#__PURE__*/function () {
|
|
|
375
401
|
player.JS_Resize();
|
|
376
402
|
}, 500);
|
|
377
403
|
} else if (this.type === 'icc_ws') {
|
|
378
|
-
var
|
|
404
|
+
var _player13 = this.player;
|
|
379
405
|
|
|
380
|
-
|
|
406
|
+
_player13.setPlayerAdapter('selfAdaption');
|
|
381
407
|
}
|
|
382
408
|
}
|
|
383
409
|
/**
|
|
@@ -398,9 +424,9 @@ var Player = /*#__PURE__*/function () {
|
|
|
398
424
|
}
|
|
399
425
|
|
|
400
426
|
if (this.type === 'hk_ws' || this.type === 'hkcar_ws') {
|
|
401
|
-
var
|
|
427
|
+
var _player14 = this.player;
|
|
402
428
|
|
|
403
|
-
|
|
429
|
+
_player14.JS_SetVolume(1, value);
|
|
404
430
|
}
|
|
405
431
|
}
|
|
406
432
|
/**
|
|
@@ -472,9 +498,9 @@ var Player = /*#__PURE__*/function () {
|
|
|
472
498
|
|
|
473
499
|
this.preSpeed = speed;
|
|
474
500
|
} else if (this.type === 'icc_ws') {
|
|
475
|
-
var
|
|
501
|
+
var _player15 = this.player;
|
|
476
502
|
|
|
477
|
-
|
|
503
|
+
_player15.playSpeed(speed);
|
|
478
504
|
} else {
|
|
479
505
|
this.video.playbackRate = speed;
|
|
480
506
|
}
|
|
@@ -513,10 +539,10 @@ var Player = /*#__PURE__*/function () {
|
|
|
513
539
|
}, {
|
|
514
540
|
key: "seekTo",
|
|
515
541
|
value: function seekTo(time) {
|
|
516
|
-
var _a, _b;
|
|
542
|
+
var _a, _b, _c;
|
|
517
543
|
|
|
518
544
|
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
519
|
-
var player, seekTime,
|
|
545
|
+
var player, seekTime, _player16, _seekTime, _player17, _seekTime2;
|
|
520
546
|
|
|
521
547
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
522
548
|
while (1) {
|
|
@@ -534,7 +560,7 @@ var Player = /*#__PURE__*/function () {
|
|
|
534
560
|
|
|
535
561
|
case 5:
|
|
536
562
|
this.seekTime = seekTime;
|
|
537
|
-
_context.next =
|
|
563
|
+
_context.next = 22;
|
|
538
564
|
break;
|
|
539
565
|
|
|
540
566
|
case 8:
|
|
@@ -543,19 +569,33 @@ var Player = /*#__PURE__*/function () {
|
|
|
543
569
|
break;
|
|
544
570
|
}
|
|
545
571
|
|
|
546
|
-
|
|
572
|
+
_player16 = this.player;
|
|
547
573
|
_seekTime = (_b = (0, _moment["default"])(this.startTime)) === null || _b === void 0 ? void 0 : _b.add(time, 'seconds').format('HH:mm:ss');
|
|
548
574
|
|
|
549
|
-
|
|
575
|
+
_player16.jumpPlayByTime(_seekTime);
|
|
550
576
|
|
|
551
|
-
_context.next =
|
|
577
|
+
_context.next = 22;
|
|
552
578
|
break;
|
|
553
579
|
|
|
554
580
|
case 14:
|
|
581
|
+
if (!(this.type === 'bd')) {
|
|
582
|
+
_context.next = 20;
|
|
583
|
+
break;
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
_player17 = this.player;
|
|
587
|
+
_seekTime2 = (_c = (0, _moment["default"])(this.startTime)) === null || _c === void 0 ? void 0 : _c.add(time, 'seconds').valueOf();
|
|
588
|
+
|
|
589
|
+
_player17.jumpPlayByTime(_seekTime2);
|
|
590
|
+
|
|
591
|
+
_context.next = 22;
|
|
592
|
+
break;
|
|
593
|
+
|
|
594
|
+
case 20:
|
|
555
595
|
this.video.currentTime = time;
|
|
556
596
|
return _context.abrupt("return", Promise.resolve());
|
|
557
597
|
|
|
558
|
-
case
|
|
598
|
+
case 22:
|
|
559
599
|
case "end":
|
|
560
600
|
return _context.stop();
|
|
561
601
|
}
|
|
@@ -576,6 +616,10 @@ var Player = /*#__PURE__*/function () {
|
|
|
576
616
|
player.JS_Pause(1).then(function () {
|
|
577
617
|
return callback && callback();
|
|
578
618
|
});
|
|
619
|
+
} else if (this.type === 'bd') {
|
|
620
|
+
var _player18 = this.player;
|
|
621
|
+
|
|
622
|
+
_player18.pause();
|
|
579
623
|
} else {
|
|
580
624
|
this.video.pause();
|
|
581
625
|
callback && callback();
|
|
@@ -594,6 +638,10 @@ var Player = /*#__PURE__*/function () {
|
|
|
594
638
|
player.JS_Resume(1).then(function () {
|
|
595
639
|
return callback && callback();
|
|
596
640
|
});
|
|
641
|
+
} else if (this.type === 'bd') {
|
|
642
|
+
var _player19 = this.player;
|
|
643
|
+
|
|
644
|
+
_player19.close(0);
|
|
597
645
|
} else {
|
|
598
646
|
this.video.play();
|
|
599
647
|
callback && callback();
|