mirror of
https://github.com/zoriya/react-native-omni.git
synced 2026-08-16 02:44:51 +00:00
94 lines
3.1 KiB
TypeScript
94 lines
3.1 KiB
TypeScript
import type { HybridObject } from "react-native-nitro-modules";
|
|
import type { OmniEvents } from "../types/events";
|
|
import type {
|
|
CastStatus,
|
|
OmniPlayerState,
|
|
OmniPlayer as OmniPlayerT,
|
|
PlayerBackend,
|
|
PlayerStatus,
|
|
Rendition,
|
|
Track,
|
|
} from "../types/player";
|
|
import type { CastOptions, Source } from "../types/source";
|
|
|
|
export type NumberProperty = Exclude<
|
|
keyof OmniPlayerState,
|
|
| "status"
|
|
| "isPlaying"
|
|
| "muted"
|
|
| "source"
|
|
| "videos"
|
|
| "audios"
|
|
| "subtitles"
|
|
| "renditions"
|
|
>;
|
|
export type BoolProperty = "isPlaying" | "muted" | "isAutoQuality";
|
|
export type TrackProperty = "videos" | "audios" | "subtitles";
|
|
|
|
export interface OmniEventMap extends HybridObject<{ android: "kotlin" }> {
|
|
addStateListener(key: NumberProperty, cb: (value: number) => void): void;
|
|
removeStateListener(key: NumberProperty, cb: (value: number) => void): void;
|
|
addStateBoolListener(key: BoolProperty, cb: (value: boolean) => void): void;
|
|
removeStateBoolListener(
|
|
key: BoolProperty,
|
|
cb: (value: boolean) => void,
|
|
): void;
|
|
addPlayerStatusListener(cb: (value: PlayerStatus) => void): void;
|
|
removePlayerStatusListener(cb: (value: PlayerStatus) => void): void;
|
|
|
|
addCastStatusListener(cb: (value: CastStatus) => void): void;
|
|
removeCastStatusListener(cb: (value: CastStatus) => void): void;
|
|
|
|
addSourceListener(cb: (value?: Source) => void): void;
|
|
removeSourceListener(cb: (value?: Source) => void): void;
|
|
|
|
addTracksListener(key: TrackProperty, cb: (value: Track[]) => void): void;
|
|
removeTracksListener(key: TrackProperty, cb: (value: Track[]) => void): void;
|
|
|
|
addRenditionsListener(cb: (value: Rendition[]) => void): void;
|
|
removeRenditionsListener(cb: (value: Rendition[]) => void): void;
|
|
|
|
addOnEndListener(cb: OmniEvents["end"]): void;
|
|
removeOnEndListener(cb: OmniEvents["end"]): void;
|
|
|
|
addOnPrevListener(cb: OmniEvents["prev"]): void;
|
|
removeOnPrevListener(cb: OmniEvents["prev"]): void;
|
|
|
|
addOnNextListener(cb: OmniEvents["next"]): void;
|
|
removeOnNextListener(cb: OmniEvents["next"]): void;
|
|
|
|
addOnErrorListener(cb: OmniEvents["error"]): void;
|
|
removeOnErrorListener(cb: OmniEvents["error"]): void;
|
|
|
|
addOnAudioFocusChangeListener(cb: OmniEvents["audioFocusChange"]): void;
|
|
removeOnAudioFocusChangeListener(cb: OmniEvents["audioFocusChange"]): void;
|
|
|
|
addOnVideoTrackChangeListener(cb: OmniEvents["videoTrackChange"]): void;
|
|
removeOnVideoTrackChangeListener(cb: OmniEvents["videoTrackChange"]): void;
|
|
|
|
addOnAudioTrackChangeListener(cb: OmniEvents["audioTrackChange"]): void;
|
|
removeOnAudioTrackChangeListener(cb: OmniEvents["audioTrackChange"]): void;
|
|
|
|
addOnSubtitleChangeListener(cb: OmniEvents["subtitleChange"]): void;
|
|
removeOnSubtitleChangeListener(cb: OmniEvents["subtitleChange"]): void;
|
|
|
|
addOnRenditionChangeListener(cb: OmniEvents["renditionChange"]): void;
|
|
removeOnRenditionChangeListener(cb: OmniEvents["renditionChange"]): void;
|
|
}
|
|
|
|
export interface OmniPlayer
|
|
extends HybridObject<{ android: "kotlin" }>,
|
|
OmniPlayerT {
|
|
readonly eventMap: OmniEventMap;
|
|
|
|
release(): void;
|
|
}
|
|
|
|
export interface OmniPlayerFactory extends HybridObject<{ android: "kotlin" }> {
|
|
createPlayer(
|
|
props?: Source,
|
|
backend?: PlayerBackend,
|
|
cast?: CastOptions,
|
|
): OmniPlayer;
|
|
}
|