x-movie/src/components/VideoPlayer.jsx

43 lines
1017 B
React
Raw Normal View History

2024-03-28 03:34:50 +08:00
import {React, useContext, useState} from 'react';
2023-07-04 23:47:01 +08:00
import { useParams } from 'react-router-dom';
import Container from '@mui/material/Container';
import Typography from '@mui/material/Typography';
2023-07-09 05:58:33 +08:00
import ConfigContext from '../Config';
2024-03-28 03:34:50 +08:00
import ReactPlayer from 'react-player';
2023-07-08 03:15:48 +08:00
2023-07-04 23:47:01 +08:00
const VideoPlayer = () => {
2023-07-08 03:15:48 +08:00
const config = useContext(ConfigContext);
2023-07-04 23:47:01 +08:00
const { filename } = useParams();
2024-03-28 03:34:50 +08:00
const [isFullScreen, setIsFullScreen] = useState(false);
const handleFullScreenChange = (player) => {
setIsFullScreen(!isFullScreen);
if (isFullScreen) {
player.exitFullscreen();
} else {
player.requestFullscreen();
}
};
2023-07-04 23:47:01 +08:00
return (
<Container>
<Typography variant="h6" gutterBottom>
{filename}
</Typography>
2024-03-28 03:34:50 +08:00
<ReactPlayer
url={`${config.Host}/res/${filename}`}
2023-07-04 23:47:01 +08:00
controls
2024-03-28 03:34:50 +08:00
width="100%"
height="auto"
playing={isFullScreen}
onReady={handleFullScreenChange}
/>
2023-07-04 23:47:01 +08:00
</Container>
);
};
export default VideoPlayer;