@remotion/player
Version:
React component for embedding a Remotion preview into your app
65 lines (64 loc) • 3.3 kB
TypeScript
import type { ComponentType } from 'react';
import React from 'react';
import type { CompProps, LogLevel } from 'remotion';
import type { AnyZodObject } from 'zod';
import type { RenderMuteButton } from './MediaVolumeSlider.js';
import type { RenderFullscreenButton, RenderPlayPauseButton } from './PlayerControls.js';
import type { PosterFillMode, RenderLoading, RenderPoster } from './PlayerUI.js';
import type { BrowserMediaControlsBehavior } from './browser-mediasession.js';
import type { PlayerRef } from './player-methods.js';
import type { RenderVolumeSlider } from './render-volume-slider.js';
import type { PropsIfHasProps } from './utils/props-if-has-props.js';
export type ErrorFallback = (info: {
error: Error;
}) => React.ReactNode;
export type PlayerProps<Schema extends AnyZodObject, Props extends Record<string, unknown>> = {
readonly durationInFrames: number;
readonly compositionWidth: number;
readonly compositionHeight: number;
readonly fps: number;
readonly showVolumeControls?: boolean;
readonly controls?: boolean;
readonly errorFallback?: ErrorFallback;
readonly style?: React.CSSProperties;
readonly loop?: boolean;
readonly autoPlay?: boolean;
readonly allowFullscreen?: boolean;
readonly clickToPlay?: boolean;
readonly doubleClickToFullscreen?: boolean;
readonly spaceKeyToPlayOrPause?: boolean;
readonly numberOfSharedAudioTags?: number;
readonly playbackRate?: number;
readonly renderLoading?: RenderLoading;
readonly moveToBeginningWhenEnded?: boolean;
readonly className?: string;
readonly initialFrame?: number;
readonly renderPoster?: RenderPoster;
readonly showPosterWhenPaused?: boolean;
readonly showPosterWhenEnded?: boolean;
readonly showPosterWhenUnplayed?: boolean;
readonly showPosterWhenBuffering?: boolean;
readonly inFrame?: number | null;
readonly outFrame?: number | null;
readonly initiallyShowControls?: number | boolean;
readonly renderPlayPauseButton?: RenderPlayPauseButton;
readonly renderFullscreenButton?: RenderFullscreenButton;
readonly renderMuteButton?: RenderMuteButton;
readonly renderVolumeSlider?: RenderVolumeSlider;
readonly alwaysShowControls?: boolean;
readonly schema?: Schema;
readonly initiallyMuted?: boolean;
readonly showPlaybackRateControl?: boolean | number[];
readonly posterFillMode?: PosterFillMode;
readonly bufferStateDelayInMilliseconds?: number;
readonly hideControlsWhenPointerDoesntMove?: boolean | number;
readonly overflowVisible?: boolean;
readonly browserMediaControlsBehavior?: BrowserMediaControlsBehavior;
readonly overrideInternalClassName?: string;
readonly logLevel?: LogLevel;
readonly noSuspense?: boolean;
readonly acknowledgeRemotionLicense?: boolean;
} & CompProps<Props> & PropsIfHasProps<Schema, Props>;
export type PlayerPropsWithoutZod<Props extends Record<string, unknown>> = PlayerProps<AnyZodObject, Props>;
export declare const componentOrNullIfLazy: <Props>(props: CompProps<Props>) => ComponentType<Props> | null;
export declare const Player: <Schema extends AnyZodObject, Props extends Record<string, unknown>>(props: PlayerProps<Schema, Props> & React.RefAttributes<PlayerRef>) => React.ReactElement | null;