UNPKG

@interactify-live/player-react-native

Version:

React Native library for Interactify player with media display, widgets, and MQTT integration

79 lines (78 loc) 2.23 kB
export interface VideoRef { seek: (time: number) => void; presentFullscreenPlayer: () => void; dismissFullscreenPlayer: () => void; resume: () => void; pause: () => void; getCurrentPosition: () => Promise<number>; } export interface VideoLoadData { duration: number; naturalSize: { width: number; height: number; }; } export interface VideoProgressData { playableDuration: number; seekableDuration: number; currentTime: number; } export interface VideoBufferData { isBuffering: boolean; } export interface VideoSeekData { currentTime: number; seekTime: number; } export interface VideoTimedMetadataData { metadata: any; } export interface VideoBandwidthData { bitrate: number; } export interface MediaItem { id: string; type: "image" | "video"; url: string; thumbnail?: string; alt?: string; } export interface MediaDisplayOptions { width?: number | string; height?: number | string; autoplay?: boolean; muted?: boolean; loop?: boolean; objectFit?: "contain" | "cover" | "fill" | "none" | "scale-down"; backgroundColor?: string; onLoad?: (media: MediaItem) => void; onError?: (media: MediaItem, error: Error) => void; onPlay?: (media: MediaItem) => void; onPause?: (media: MediaItem) => void; onEnded?: (media: MediaItem) => void; onVideoReady?: (videoRef: VideoRef) => void; onLoadStart?: (media: MediaItem) => void; onCanPlay?: (media: MediaItem) => void; onBuffering?: (media: MediaItem, isBuffering: boolean) => void; onProgress?: (media: MediaItem, loaded: number, total: number) => void; } export interface MediaDisplayInstance { load: (media: MediaItem) => void; play: () => Promise<void>; pause: () => void; destroy: () => void; getCurrentTime: () => Promise<number>; getDuration: () => number; mute: () => void; unmute: () => void; isMuted: () => boolean; isPlaying: () => boolean; seek: (time: number) => void; } export interface MediaDisplayNativeProps extends MediaDisplayOptions { media?: MediaItem; } export interface MediaDisplayProps extends MediaDisplayOptions { media?: MediaItem; }