UNPKG

1.05 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.useMediaTagVolume = void 0;
4const react_1 = require("react");
5// Returns the real volume of the audio or video while playing,
6// no matter what the supposed volume should be
7const useMediaTagVolume = (mediaRef) => {
8 const [actualVolume, setActualVolume] = (0, react_1.useState)(1);
9 (0, react_1.useEffect)(() => {
10 const ref = mediaRef.current;
11 if (!ref) {
12 return;
13 }
14 const onChange = () => {
15 setActualVolume(ref.volume);
16 };
17 ref.addEventListener('volumechange', onChange);
18 return () => ref.removeEventListener('volumechange', onChange);
19 }, [mediaRef]);
20 (0, react_1.useEffect)(() => {
21 const ref = mediaRef.current;
22 if (!ref) {
23 return;
24 }
25 if (ref.volume !== actualVolume) {
26 setActualVolume(ref.volume);
27 }
28 }, [actualVolume, mediaRef]);
29 return actualVolume;
30};
31exports.useMediaTagVolume = useMediaTagVolume;