UNPKG

unified-video-framework

Version:

Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more

306 lines 10.5 kB
import { BasePlayer } from '../../core/dist/BasePlayer'; import { Chapter, ChapterSegment } from '../../core/dist/index'; import { ChapterConfig, VideoChapters, VideoSegment } from './chapters/types/ChapterTypes'; import type { FlashNewsTickerConfig } from './react/types/FlashNewsTickerTypes'; declare global { interface Window { Hls: any; dashjs: any; cast?: any; chrome?: any; YT?: any; __onGCastApiAvailable?: (isAvailable: boolean) => void; } } export declare class WebPlayer extends BasePlayer { protected video: HTMLVideoElement | null; private hls; private dash; private qualities; private currentQualityIndex; private autoQuality; private useCustomControls; private controlsContainer; private volumeHideTimeout; private hideControlsTimeout; private isVolumeSliding; private availableQualities; private availableSubtitles; private currentQuality; private currentSubtitle; private currentPlaybackRate; private isDragging; private settingsConfig; private watermarkCanvas; private playerWrapper; private flashTickerContainer; private flashTickerTopElement; private flashTickerBottomElement; private previewGateHit; private paymentSuccessTime; private paymentSuccessful; private isPaywallActive; private authValidationInterval; private overlayRemovalAttempts; private maxOverlayRemovalAttempts; private lastSecurityCheck; private castContext; private remotePlayer; private remoteController; private isCasting; private _castTrackIdByKey; private selectedSubtitleKey; private _kiTo; private paywallController; private _playPromise; private _deferredPause; private _lastToggleAt; private _TOGGLE_DEBOUNCE_MS; private hasTriedButtonFallback; private lastUserInteraction; private showTimeTooltip; private tapStartTime; private tapStartX; private tapStartY; private lastTapTime; private lastTapX; private tapCount; private longPressTimer; private isLongPressing; private longPressPlaybackRate; private tapResetTimer; private fastBackwardInterval; private handleSingleTap; private handleDoubleTap; private handleLongPress; private handleLongPressEnd; private autoplayCapabilities; private autoplayRetryPending; private autoplayRetryAttempts; private maxAutoplayRetries; private chapterManager; private hasAppliedStartTime; private coreChapterManager; private chapterConfig; private qualityFilter; private premiumQualities; private youtubeNativeControls; private isAdPlaying; private fallbackSourceIndex; private fallbackErrors; private isLoadingFallback; private currentRetryAttempt; private lastFailedUrl; private isFallbackPosterMode; private debugLog; private debugError; private debugWarn; initialize(container: HTMLElement | string, config?: any): Promise<void>; protected setupPlayer(): Promise<void>; private autoplayAttempted; private setupVideoEventListeners; private getMediaErrorMessage; private updateBufferProgress; load(source: any): Promise<void>; private loadVideoSource; private tryFallbackSource; private showFallbackPoster; private detectSourceType; private loadHLS; private handleHLSError; private loadDASH; private updateDASHQuality; private loadNative; private loadYouTube; private youtubePlayer; private youtubePlayerReady; private youtubeIframe; private createYouTubePlayer; private loadYouTubeAPI; private waitForYouTubeAPI; private onYouTubePlayerReady; private onYouTubePlayerStateChange; private updateYouTubeUI; private onYouTubePlayerError; private hideCustomControls; private youtubeTimeTrackingInterval; private startYouTubeTimeTracking; private updateYouTubeProgressBar; protected loadScript(src: string): Promise<void>; private loadSubtitles; private isAbortPlayError; private isAutoplayRestrictionError; private detectAutoplayCapabilities; private hasUserActivation; private attemptIntelligentAutoplay; private setupAutoplayRetry; private showUnmuteButton; private setupClickToUnmute; private clickToUnmuteHandler; private hideUnmuteButton; private updateTimeTooltip; private hideTimeTooltip; private setupUserInteractionTracking; play(): Promise<void>; pause(): void; requestPause(): void; private safeSetCurrentTime; seek(time: number): void; setVolume(level: number): void; mute(): void; unmute(): void; getCurrentTime(): number; getQualities(): any[]; getCurrentQuality(): any; setQuality(index: number): void; setPlaybackRate(rate: number): void; setFlashNewsTicker(config: FlashNewsTickerConfig): void; private createTickerElement; private calculateTickerDuration; setAutoQuality(enabled: boolean): void; enterFullscreen(): Promise<void>; exitFullscreen(): Promise<void>; enterPictureInPicture(): Promise<void>; exitPictureInPicture(): Promise<void>; focusPlayer(): void; showFullscreenTip(): void; private isBraveBrowser; private checkFullscreenPermissions; private isPrivateWindow; triggerFullscreenButton(): void; private performFullscreenButtonClick; private requestFullscreenPermissionBrave; enterFullscreenWithBraveSupport(): Promise<void>; showTemporaryMessage(message: string): void; enterFullscreenSynchronously(): void; requestFullscreenWithUserGesture(event: Event): Promise<boolean>; showFullscreenInstructions(): void; attemptFullscreen(): Promise<boolean>; protected applySubtitleTrack(track: any): void; protected removeSubtitles(): void; private injectStyles; private getPlayerStyles; private createFrameworkBranding; private createNavigationButtons; private getNavigationIcon; private createCustomControls; private setupControlsEventListeners; protected setupKeyboardShortcuts(): void; protected setupWatermark(): void; setPaywallConfig(config: any): void; private togglePlayPause; private enforceFreePreviewGate; setFreeDuration(seconds: number): void; resetFreePreviewGate(): void; resetPaymentStatus(): void; private toggleMuteAction; private isMobileDevice; private isPipSupported; private isIOSDevice; private isAndroidDevice; private isFullscreenSupported; private lockOrientationLandscape; private unlockOrientation; private handleVolumeChange; private seekToPosition; private formatTime; private updateTimeDisplay; private showControls; private hideControls; private scheduleHideControls; private setupAdvancedTapHandling; private startFastBackward; private stopFastBackward; private isFullscreen; private setupFullscreenListeners; private showShortcutIndicator; setSettingsScrollbarStyle(mode: 'default' | 'compact' | 'overlay'): void; setSettingsScrollbarConfig(options: { widthPx?: number; intensity?: number; }): void; private applyScrollbarPreferencesFromDataset; private setupChapterManager; private convertToChapters; private convertToChapterSegments; private mapSegmentAction; loadChapters(chapters: VideoChapters): Promise<void>; loadChaptersFromUrl(url: string): Promise<void>; getCurrentSegment(): VideoSegment | null; skipToSegment(segmentId: string): void; getSegments(): VideoSegment[]; updateChapterConfig(newConfig: Partial<ChapterConfig>): void; hasChapters(): boolean; getChapters(): VideoChapters | null; getCoreChapters(): Chapter[]; getCoreSegments(): ChapterSegment[]; getCurrentChapterInfo(): Chapter | null; seekToChapter(chapterId: string): void; getNextChapter(): Chapter | null; getPreviousChapter(): Chapter | null; setTheme(theme: any): void; private _parseRgb; private _rgbToString; private _lightenRgb; private _toRgba; private changeVolume; private setSpeed; private setQualityByLabel; private togglePiP; private setupCastContextSafe; private setupCastContext; private enableCastRemoteControl; private disableCastRemoteControl; private _bindRemotePlayerEvents; private updateVolumeUIFromRemote; private _syncUIFromRemote; private _syncCastButtons; private updateSettingsMenu; private generateAccordionMenu; private detectAvailableQualities; private applyQualityFilter; setQualityFilter(filter: any): void; setAdPlaying(isPlaying: boolean): void; isAdCurrentlyPlaying(): boolean; private isQualityPremium; private isPremiumUser; private handlePremiumQualityClick; private detectAvailableSubtitles; private setupSettingsEventListeners; private toggleAccordionSection; private hideSettingsMenu; private updateAccordionAfterSelection; private updateSettingsActiveStates; private setPlaybackRateFromSettings; private setQualityFromSettings; private applyHLSQualityFilter; private applyDASHQualityFilter; private setSubtitle; private _updateCastActiveTracks; private onCastButtonClick; private showAirPlayPicker; private stopCasting; private initCast; private shareVideo; private isTextTruncated; private showTextTooltip; private hideTextTooltip; private setupTextTooltips; private smartTruncateText; private applySmartTextDisplay; private updateMetadataUI; private showNotification; private canPlayVideo; private enforcePaywallSecurity; private startOverlayMonitoring; private handleSecurityViolation; private showSecurityViolationMessage; private forceCleanupOverlays; showEPGButton(): void; hideEPGButton(): void; setEPGData(epgData: any): void; isEPGButtonVisible(): boolean; private cleanup; destroy(): Promise<void>; } //# sourceMappingURL=WebPlayer.d.ts.map