@nativeframe/react-native-native-frame
Version:
React native package for streaming
54 lines • 2.07 kB
TypeScript
import { Component, type ReactNode } from 'react';
import { ManifestPlayerEvents, type ManifestPlayerRequestsListener } from '../native-events/ManifestPlayerEvents';
import { VideoClient, types } from '@video/video-client-core';
type NativeDrivers = 'webrtc' | 'native-hls';
type NativeFormats = 'webrtc' | 'mp4-hls';
type NativePlayerSpecList = {
id: NativeDrivers;
}[];
interface ManifestPlayerProps {
manifestUrl: string;
token: string;
videoClientOptions?: types.VideoClientOptions;
players?: NativeDrivers[];
autoplay?: boolean;
muted?: boolean;
preferredScoreLevel?: types.TranscodeScoreLevel | types.SourceScoreLevel;
debounceInitTime?: number;
children?: (props: {
player: NativeFramePlayer;
}) => ReactNode | null;
}
interface ManifestPlayerState {
format: NativeFormats | undefined;
source: string | null;
availableQualities: string[];
paused: boolean;
muted: boolean;
driver: string | null;
}
export declare class NativeFramePlayer extends Component<ManifestPlayerProps, ManifestPlayerState> implements ManifestPlayerRequestsListener {
readonly TAG = "NativeFramePlayer";
readonly events: ManifestPlayerEvents;
videoClient: VideoClient;
players: NativePlayerSpecList;
player: types.PlayerAPI<types.VideoElement> | null;
mediaStream: MediaStream | null;
availableQualities: string[];
initPlayerTimeout: ReturnType<typeof setTimeout> | null;
constructor(props: ManifestPlayerProps);
componentDidUpdate(prevProps: Readonly<ManifestPlayerProps>): void;
initManifestPlayer: () => void;
onRequestTimeupdate: () => void;
onRequestVideoPause: () => void;
onRequestVideoPlay: () => void;
onRequestVideoMuteToggle: () => void;
onRequestDisposePlayer: () => void;
onRequestPreferredQualityChange: (level: string) => void;
onRequestReloadPlayer: () => void;
onRequestInitPlayer: () => void;
resetState: (fn?: () => void) => void;
render(): ReactNode;
}
export {};
//# sourceMappingURL=NativeFramePlayer.d.ts.map