Handle rendition selection

This commit is contained in:
2026-05-13 18:23:09 +02:00
parent 9e4fc4aa67
commit e68628daba
18 changed files with 152 additions and 60 deletions
+1
View File
@@ -46,6 +46,7 @@ export function usePlayerState<Key extends keyof OmniPlayerState>(
return () => em.removeStateListener(key, setState);
case "isPlaying":
case "muted":
case "isAutoQuality":
em.addStateBoolListener(key, setState);
return () => em.removeStateBoolListener(key, setState);
case "status":
+1 -1
View File
@@ -11,7 +11,7 @@ export type NumberProperty = Exclude<
keyof OmniPlayerState,
"status" | "isPlaying" | "muted"
>;
export type BoolProperty = "isPlaying" | "muted";
export type BoolProperty = "isPlaying" | "muted" | "isAutoQuality";
export interface OmniEventMap extends HybridObject<{ android: "kotlin" }> {
addStateListener(key: NumberProperty, cb: (value: number) => void): void;
+10 -9
View File
@@ -34,21 +34,22 @@ export interface OmniPlayerState {
// between 0 and 1
volume: number;
muted: boolean;
readonly isAutoQuality: boolean
}
export type PlayerStatus = "idle" | "loading" | "readyToPlay" | "error";
export interface Track {
id: string;
label?: string;
language?: string;
selected: boolean;
readonly id: string;
readonly label?: string;
readonly language?: string;
readonly selected: boolean;
}
export interface Rendition {
id: string;
width: number;
height: number;
bitrate: number;
selected: boolean;
readonly id: string;
readonly width: number;
readonly height: number;
readonly bitrate: number;
readonly selected: boolean;
}