UNPKG

2.05 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.VideoForDevelopment = void 0;
4const jsx_runtime_1 = require("react/jsx-runtime");
5const react_1 = require("react");
6const use_audio_frame_1 = require("../audio/use-audio-frame");
7const use_media_in_timeline_1 = require("../use-media-in-timeline");
8const use_media_playback_1 = require("../use-media-playback");
9const use_media_tag_volume_1 = require("../use-media-tag-volume");
10const use_sync_volume_with_media_tag_1 = require("../use-sync-volume-with-media-tag");
11const volume_position_state_1 = require("../volume-position-state");
12const VideoForDevelopmentRefForwardingFunction = (props, ref) => {
13 var _a;
14 const videoRef = (0, react_1.useRef)(null);
15 const volumePropFrame = (0, use_audio_frame_1.useFrameForVolumeProp)();
16 const { volume, muted, playbackRate, ...nativeProps } = props;
17 const actualVolume = (0, use_media_tag_volume_1.useMediaTagVolume)(videoRef);
18 const [mediaVolume] = (0, volume_position_state_1.useMediaVolumeState)();
19 const [mediaMuted] = (0, volume_position_state_1.useMediaMutedState)();
20 (0, use_media_in_timeline_1.useMediaInTimeline)({
21 mediaRef: videoRef,
22 volume,
23 mediaVolume,
24 mediaType: 'video',
25 src: nativeProps.src,
26 });
27 (0, use_sync_volume_with_media_tag_1.useSyncVolumeWithMediaTag)({
28 volumePropFrame,
29 actualVolume,
30 volume,
31 mediaVolume,
32 mediaRef: videoRef,
33 });
34 (0, use_media_playback_1.useMediaPlayback)({
35 mediaRef: videoRef,
36 src: nativeProps.src,
37 mediaType: 'video',
38 playbackRate: (_a = props.playbackRate) !== null && _a !== void 0 ? _a : 1,
39 });
40 (0, react_1.useImperativeHandle)(ref, () => {
41 return videoRef.current;
42 });
43 return ((0, jsx_runtime_1.jsx)("video", { ref: videoRef, muted: muted || mediaMuted, playsInline: true, ...nativeProps }, void 0));
44};
45exports.VideoForDevelopment = (0, react_1.forwardRef)(VideoForDevelopmentRefForwardingFunction);