mirror of
https://github.com/KuekHaoYang/KVideo.git
synced 2026-05-06 22:15:06 +08:00
32 lines
983 B
TypeScript
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} />;
|
|
}
|