remotion
Version:
Render videos in React
24 lines • 1.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useMediaHasMetadata = void 0;
const react_1 = require("react");
const useMediaHasMetadata = (mediaRef) => {
const [hasMetadata, setHasMetadata] = (0, react_1.useState)(false);
(0, react_1.useEffect)(() => {
const { current } = mediaRef;
if (!current) {
return;
}
const hasSourceChild = Array.from(current.childNodes).some((child) => child.nodeName === 'SOURCE');
if (!current.src && !hasSourceChild) {
const tagName = current.nodeName === 'AUDIO' ? '<Audio>' : '<Video>';
throw new Error(`No src found. Please provide a src prop or a <source> child to the ${tagName} element.`);
}
const handler = () => setHasMetadata(true);
current.addEventListener('loadedmetadata', handler);
return () => current.removeEventListener('loadedmetadata', handler);
}, [mediaRef]);
return hasMetadata;
};
exports.useMediaHasMetadata = useMediaHasMetadata;
//# sourceMappingURL=use-media-metadata.js.map