Files
KVideo/components/player/CustomVideoPlayer.tsx
kuekhaoyang 43a35e3f47 new
2025-12-24 23:53:24 +08:00

32 lines
983 B
TypeScript

'use client';
import { useIsMobile } from '@/lib/hooks/useMobilePlayer';
import { DesktopVideoPlayer } from './DesktopVideoPlayer';
import { MobileVideoPlayer } from './MobileVideoPlayer';
interface CustomVideoPlayerProps {
src: string;
poster?: string;
onError?: (error: string) => void;
onTimeUpdate?: (currentTime: number, duration: number) => void;
initialTime?: number;
shouldAutoPlay?: boolean;
// Episode navigation props for auto-skip/auto-next
totalEpisodes?: number;
currentEpisodeIndex?: number;
onNextEpisode?: () => void;
}
/**
* Smart Video Player that renders different versions based on device
* - Mobile/Tablet: Optimized touch controls, double-tap gestures, orientation lock
* - Desktop: Full-featured player with hover interactions
*/
export function CustomVideoPlayer(props: CustomVideoPlayerProps) {
const isMobile = useIsMobile();
return isMobile
? <MobileVideoPlayer {...props} />
: <DesktopVideoPlayer {...props} />;
}