feat(mpv): add opaque subtitle background with adjustable opacity (iOS only)

This commit is contained in:
Fredrik Burmester
2026-02-01 17:29:31 +01:00
parent ab526f2c6b
commit bc575c26c1
9 changed files with 142 additions and 51 deletions

View File

@@ -95,6 +95,11 @@ export interface MpvPlayerViewRef {
setSubtitleAlignX: (alignment: "left" | "center" | "right") => Promise<void>;
setSubtitleAlignY: (alignment: "top" | "center" | "bottom") => Promise<void>;
setSubtitleFontSize: (size: number) => Promise<void>;
setSubtitleBackgroundColor: (color: string) => Promise<void>;
setSubtitleBorderStyle: (
style: "outline-and-shadow" | "background-box",
) => Promise<void>;
setSubtitleAssOverride: (mode: "no" | "force") => Promise<void>;
// Audio controls
getAudioTracks: () => Promise<AudioTrack[]>;
setAudioTrack: (trackId: number) => Promise<void>;

View File

@@ -84,6 +84,17 @@ export default React.forwardRef<MpvPlayerViewRef, MpvPlayerViewProps>(
setSubtitleFontSize: async (size: number) => {
await nativeRef.current?.setSubtitleFontSize(size);
},
setSubtitleBackgroundColor: async (color: string) => {
await nativeRef.current?.setSubtitleBackgroundColor(color);
},
setSubtitleBorderStyle: async (
style: "outline-and-shadow" | "background-box",
) => {
await nativeRef.current?.setSubtitleBorderStyle(style);
},
setSubtitleAssOverride: async (mode: "no" | "force") => {
await nativeRef.current?.setSubtitleAssOverride(mode);
},
// Audio controls
getAudioTracks: async () => {
return await nativeRef.current?.getAudioTracks();