mirror of
https://github.com/zoriya/react-native-omni.git
synced 2026-08-16 02:44:51 +00:00
feat(chromecast): send custom message for overlay subtitles
This commit is contained in:
+22
-1
@@ -126,6 +126,27 @@ export const useEvent = <Event extends keyof OmniEvents>(
|
||||
}
|
||||
return undefined;
|
||||
}, [event, player]);
|
||||
|
||||
// ASS/PGS (overlay) subtitle selection is not a videojs text-track change, so
|
||||
// re-fire subtitleChange when the overlay subtitle changes too — consumers
|
||||
// only need useEvent("subtitleChange").
|
||||
useEffect(() => {
|
||||
if (event !== "subtitleChange") return;
|
||||
return player.subscribeOverlaySubtitle(() => {
|
||||
const sel = player.subtitles.find((s) => s.selected);
|
||||
const cb = callbackRef.current as (s: unknown) => void;
|
||||
cb(
|
||||
sel
|
||||
? {
|
||||
id: sel.id,
|
||||
label: sel.label,
|
||||
language: sel.language,
|
||||
selected: true,
|
||||
}
|
||||
: undefined,
|
||||
);
|
||||
});
|
||||
}, [event, player]);
|
||||
};
|
||||
|
||||
function createMapper<Key extends keyof OmniPlayerState, State, Result>(
|
||||
@@ -182,7 +203,7 @@ export const stateMapper = {
|
||||
if (!r) return "unavailable";
|
||||
if (r.remotePlaybackState === "connecting") return "connecting";
|
||||
if (r.remotePlaybackState === "connected") return "connected";
|
||||
return r.remotePlaybackAvailability
|
||||
return r.remotePlaybackAvailability;
|
||||
}),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user