import { Modal } from "antd";
import { useEffect, useRef, useState } from "react";
import { getFileUrl } from "../../utils";
import AliPlayer from "./AliPlayer";
/**
* 视频播放组件
*/
const Video = ({
source = "",
vid = "",
playAuth = "",
cover = "",
autoplay = true,
showProgress = true,
playTime = 0,
inline = false,
isLive = false,
width = "100%",
height = "600px",
title = "视频",
visible: externalVisible = false,
onCancel,
...restProps
}) => {
const [internalVisible, setInternalVisible] = useState(false);
const playerRef = useRef(null);
const visible = onCancel ? externalVisible : internalVisible;
const setVisible = onCancel || setInternalVisible;
const getSource = () => {
if (!source)
return;
if (source.includes("http") || source.includes("https"))
return source;
else return getFileUrl() + source;
};
useEffect(() => {
if (!inline) {
if (visible) {
playerRef.current && playerRef.current.play();
}
else {
playerRef.current && playerRef.current.pause();
}
}
}, [visible, inline]);
const playerElement = (
);
if (!inline) {
return (
setVisible(false)}>
取消
,
]}
maskClosable={false}
onCancel={() => setVisible(false)}
{...restProps}
>
{playerElement}
);
}
return playerElement;
};
export default Video;