@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
TypeScript
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;
}