unified-video-framework
Version:
Cross-platform video player framework supporting iOS, Android, Web, Smart TVs (Samsung/LG), Roku, and more
68 lines • 2.04 kB
TypeScript
export interface GoogleAdsConfig {
adTagUrl: string;
midrollTimes?: number[];
liveAdBreakMode?: 'periodic' | 'manual';
periodicAdInterval?: number;
syncToLiveEdge?: boolean;
pauseStreamDuringAd?: boolean;
liveEdgeOffset?: number;
companionAdSlots?: Array<{
containerId: string;
width: number;
height: number;
}>;
onAdStart?: () => void;
onAdEnd?: () => void;
onAdError?: (error: any) => void;
onAllAdsComplete?: () => void;
onAdCuePoints?: (cuePoints: number[]) => void;
}
export declare class GoogleAdsManager {
private video;
private adContainer;
private config;
private adsManager;
private adsLoader;
private adDisplayContainer;
private isAdPlaying;
private isMuted;
private unmuteButton;
private adProgressBar;
private adProgressInterval;
private lastAdTime;
private periodicAdCheckInterval;
private pendingAdRequest;
private focusHandler;
private visibilityHandler;
private timeupdateHandler;
private volumechangeHandler;
private triggeredMidrollTimes;
constructor(video: HTMLVideoElement, adContainer: HTMLElement, config: GoogleAdsConfig);
private setupFocusHandler;
initialize(): Promise<void>;
private loadIMASDK;
private setupAdsLoader;
private setupMidrollTriggers;
setupPeriodicAds(): void;
private triggerPeriodicAd;
requestAds(): void;
initAdDisplayContainer(): void;
private onAdsManagerLoaded;
private setupAdsManagerListeners;
private onAdError;
pause(): void;
resume(): void;
skip(): void;
resize(width: number, height: number, viewMode?: any): void;
setVolume(volume: number): void;
isPlayingAd(): boolean;
private showUnmuteButton;
private toggleAdMute;
private updateMuteButtonUI;
private resumeAdPlayback;
private hideUnmuteButton;
private showAdProgressBar;
private hideAdProgressBar;
destroy(): void;
}
//# sourceMappingURL=GoogleAdsManager.d.ts.map