unified-video-framework
Version:
Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more
42 lines • 1.78 kB
TypeScript
import { VideoSegment, VideoChapters, ChapterConfig, ChapterEvents, ChapterMarker, SegmentType } from './types/ChapterTypes';
export declare class ChapterManager {
private playerContainer;
private videoElement;
private chapters;
private currentSegment;
private previousSegment;
private skipButtonController;
private creditsButtonController;
private config;
private eventListeners;
private isDestroyed;
constructor(playerContainer: HTMLElement, videoElement: HTMLVideoElement, config?: ChapterConfig);
loadChapters(chapters: VideoChapters): Promise<void>;
loadChaptersFromUrl(url: string): Promise<void>;
getCurrentSegment(currentTime: number): VideoSegment | null;
skipToNextSegment(currentSegment: VideoSegment): void;
skipToSegment(segmentId: string): void;
getSegments(): VideoSegment[];
getSegment(segmentId: string): VideoSegment | null;
getSegmentsByType(type: SegmentType): VideoSegment[];
getChapterMarkers(): ChapterMarker[];
updateConfig(newConfig: Partial<ChapterConfig>): void;
on<K extends keyof ChapterEvents>(event: K, listener: (data: ChapterEvents[K]) => void): void;
off<K extends keyof ChapterEvents>(event: K, listener: (data: ChapterEvents[K]) => void): void;
destroy(): void;
hasChapters(): boolean;
getChapters(): VideoChapters | null;
private setupTimeUpdateListener;
private checkCurrentSegment;
private shouldShowSkipButton;
private handleWatchCredits;
private handleNextEpisode;
private handleAutoRedirect;
private getNextContentSegment;
private sortSegments;
private validateChapters;
private updateChapterMarkers;
private removeChapterMarkers;
private emit;
}
//# sourceMappingURL=ChapterManager.d.ts.map