Ниже приведен мой код: Мне нужно добавить селектор качества и отключить опцию щелчка правой кнопкой мыши на веб-странице, которая использует videojs. Я не уверен, как использовать плагины, в реакции не было примеров плагинов. Пожалуйста помоги
Видеоплеер.js
import videojs from "video.js";
export const VideoPlayer = (props) => {
const videoPlayerRef = useRef(null); // Instead of ID
const [currentTime, setCurrentTime] = useState(null);
const videoSrc = "https://media.w3.org/2010/05/sintel/trailer_hd.mp4";
const videoJSOptions = {
autoplay: "muted",
controls: true,
userActions: { hotkeys: true },
playbackRates: [0.5, 1, 1.5, 2],
chromecast: {
appId: "APP-ID",
metadata: {
title: "Title display on tech wrapper",
subtitle: "Synopsis display on tech wrapper",
},
},
hlsQualitySelector: {
displayCurrentQuality: true,
},
};
useEffect(() => {
if (videoPlayerRef) {
const player = videojs(videoPlayerRef.current, videoJSOptions, () => {
player.src(videoSrc);
player.on("ended", () => {
console.info("ended");
});
player.on("timeupdate", () => {
setCurrentTime(player.currentTime());
});
console.info("Player Ready");
});
}
return () => {};
}, []);
return (
<div style = {{ width: "100%" }}>
<video
style = {{ width: "100%" }}
ref = {videoPlayerRef}
className = "video-js"
/>
<span>Current Time: {currentTime}</span>
{/* <GlobalStyle /> */}
</div>
);
};```
Чтобы отключить меню правой кнопки мыши в видеоплеере, вы можете использовать синтетическое событие contextmenu
в реакции,
document.addEventListener("contextmenu", (event) => {
event.preventDefault();
});
// using react synthetic events
<SomeJSXVideoDOM onContextMenu = {(event)=>event.preventDefault()} />
Для получения дополнительной информации ознакомьтесь с этим [блогом в contextmenu (https://www.pluralsight.com/guides/how-to-create-a-right-click-menu-using-react).
Вы можете найти больше информации о синтетическом событии реакции для onContextMenu поверх здесь
Вы можете использовать свойство события onContextMenu
для обработки щелчков правой кнопкой мыши по определенному элементу. Что-то вроде этого -
...
return (
<div onContextMenu = {e => e.preventDefault()} style = {{ width: "100%" }}>
<video
style = {{ width: "100%" }}
ref = {videoPlayerRef}
className = "video-js"
/>
<span>Current Time: {currentTime}</span>
{/* <GlobalStyle /> */}
</div>
);
...
Это отключит щелчок правой кнопкой мыши по элементу и всем элементам внутри него. Кроме того, это будет работать только с собственными элементами HTML, если вы не перенаправляете onContextMenu prop
или forwarding ref
для элемента HTML.