playable
Version:
Video player based on HTML5Video
105 lines (104 loc) • 3.54 kB
TypeScript
import View from './progress.view';
import { IEventEmitter } from '../../../event-emitter/types';
import { ITooltipService } from '../../core/tooltip/types';
import { IProgressControlAPI, IProgressControl } from './types';
import { ITextMap } from '../../../text-map/types';
import { IPlaybackEngine } from '../../../playback-engine/types';
import { IPreviewThumbnail } from '../../preview-thumbnail/types';
import { IPreviewFullSize } from '../../preview-full-size/types';
import { IThemeService } from '../../core/theme';
export declare const UPDATE_PROGRESS_INTERVAL_DELAY: number;
declare class ProgressControl implements IProgressControl {
static moduleName: string;
static View: typeof View;
static dependencies: string[];
private _engine;
private _liveStateEngine;
private _eventEmitter;
private _textMap;
private _tooltipService;
private _theme;
private _previewThumbnail;
private _previewFullSize;
private _isUserDragging;
private _shouldPlayAfterDragEnd;
private _desiredSeekPosition;
private _interceptor;
private _updateControlInterval;
private _timeIndicatorsToAdd;
private _shouldHidePreviewOnUpdate;
private _showFullScreenPreview;
private _unbindEvents;
view: View;
isHidden: boolean;
constructor({ engine, liveStateEngine, eventEmitter, textMap, tooltipService, theme, previewThumbnail, previewFullSize, }: {
eventEmitter: IEventEmitter;
engine: IPlaybackEngine;
liveStateEngine: any;
textMap: ITextMap;
tooltipService: ITooltipService;
theme: IThemeService;
previewThumbnail: IPreviewThumbnail;
previewFullSize: IPreviewFullSize;
});
getElement(): HTMLElement;
private _bindEvents;
private _initUI;
private _initInterceptor;
private _destroyInterceptor;
private _bindCallbacks;
private _startIntervalUpdates;
private _stopIntervalUpdates;
private _convertPlayedPercentToTime;
private _onChangePlayedPercent;
private _showTooltipAndPreview;
private _hideTooltip;
private _startProcessingUserDrag;
private _stopProcessingUserDrag;
private _hidePreview;
private _processStateChange;
private _processLiveStateChange;
private _changeCurrentTimeOfVideo;
private _pauseVideoOnDragStart;
private _playVideoOnDragEnd;
private _updateBufferIndicator;
private _updatePlayedIndicator;
private _updateAllIndicators;
private _initTimeIndicators;
private _addTimeIndicator;
private _syncWithLive;
private _onSyncWithLiveMouseEnter;
private _onSyncWithLiveMouseLeave;
private _setPlayed;
private _setBuffered;
private _reset;
/**
* Player will show full screen preview instead of actual seek on video when user drag the progress control
* @example
* player.showPreviewOnProgressDrag();
*/
showPreviewOnProgressDrag(): void;
/**
* Player will seek on video when user drag the progress control
* @example
* player.seekOnProgressDrag();
*/
seekOnProgressDrag(): void;
/**
* Add time indicator to progress bar
*/
addTimeIndicator(time: number): void;
/**
* Add time indicators to progress bar
*/
addTimeIndicators(times: number[]): void;
/**
* Delete all time indicators from progress bar
*/
clearTimeIndicators(): void;
hide(): void;
show(): void;
destroy(): void;
}
export { IProgressControlAPI };
export default ProgressControl;