This commit is contained in:
tapframe 2025-10-19 12:20:56 +05:30
commit d5edec025c
3 changed files with 21 additions and 3 deletions

View file

@ -35,7 +35,7 @@ export interface AppSettings {
enableBackgroundPlayback: boolean;
cacheLimit: number;
useExternalPlayer: boolean;
preferredPlayer: 'internal' | 'vlc' | 'infuse' | 'outplayer' | 'vidhub' | 'external';
preferredPlayer: 'internal' | 'vlc' | 'infuse' | 'outplayer' | 'vidhub' | 'infuse_livecontainer' | 'external';
showHeroSection: boolean;
featuredContentSource: 'tmdb' | 'catalogs';
heroStyle: 'legacy' | 'carousel';
@ -241,4 +241,4 @@ export const useSettings = () => {
};
};
export default useSettings;
export default useSettings;

View file

@ -127,6 +127,12 @@ const PlayerSettingsScreen: React.FC = () => {
description: 'Open streams in VidHub player',
icon: 'ondemand-video',
},
{
id: 'infuse_livecontainer',
title: 'Infuse Livecontainer',
description: 'Open streams in Infuse player LiveContainer',
icon: 'smart-display',
},
] : [
{
id: 'external',
@ -420,4 +426,4 @@ const styles = StyleSheet.create({
},
});
export default PlayerSettingsScreen;
export default PlayerSettingsScreen;

View file

@ -1289,6 +1289,18 @@ export const StreamsScreen = () => {
];
break;
case 'infuse_livecontainer':
const infuseUrls = [
`infuse://x-callback-url/play?url=${streamUrl}`,
`infuse://play?url=${streamUrl}`,
`infuse://${streamUrl}`
];
externalPlayerUrls = infuseUrls.map(infuseUrl => {
const encoded = Buffer.from(infuseUrl).toString('base64');
return `livecontainer://open-web-page?url=${encoded}`;
});
break;
default:
// If no matching player or the setting is somehow invalid, use internal player
navigateToPlayer(stream);