@remotion/player
Version:
React component for embedding a Remotion preview into your app
48 lines (47 loc) • 1.76 kB
TypeScript
import type { MouseEventHandler, ReactNode } from 'react';
import React from 'react';
import type { usePlayer } from './use-player.js';
import type { Size } from './utils/use-element-size.js';
export type RenderPlayPauseButton = (props: {
playing: boolean;
isBuffering: boolean;
}) => ReactNode | null;
export type RenderFullscreenButton = (props: {
isFullscreen: boolean;
}) => ReactNode;
declare global {
interface Document {
webkitFullscreenEnabled?: boolean;
webkitFullscreenElement?: Element;
webkitExitFullscreen?: Document['exitFullscreen'];
}
interface HTMLDivElement {
webkitRequestFullScreen: HTMLDivElement['requestFullscreen'];
}
}
export declare const Controls: React.FC<{
fps: number;
durationInFrames: number;
showVolumeControls: boolean;
player: ReturnType<typeof usePlayer>;
onFullscreenButtonClick: MouseEventHandler<HTMLButtonElement>;
isFullscreen: boolean;
allowFullscreen: boolean;
onExitFullscreenButtonClick: MouseEventHandler<HTMLButtonElement>;
spaceKeyToPlayOrPause: boolean;
onSeekEnd: () => void;
onSeekStart: () => void;
inFrame: number | null;
outFrame: number | null;
initiallyShowControls: number | boolean;
canvasSize: Size | null;
renderPlayPauseButton: RenderPlayPauseButton | null;
renderFullscreenButton: RenderFullscreenButton | null;
alwaysShowControls: boolean;
showPlaybackRateControl: boolean | number[];
containerRef: React.RefObject<HTMLDivElement>;
buffering: boolean;
hideControlsWhenPointerDoesntMove: boolean | number;
onPointerUp: React.PointerEventHandler<HTMLDivElement> | undefined;
onDoubleClick: MouseEventHandler<HTMLDivElement> | undefined;
}>;