@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
142 lines (141 loc) • 4.71 kB
TypeScript
import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';
import { ExtractedFrame } from '../../services/frame-extraction/index';
import type { MediaPlayerType } from './media-player.component';
import * as i0 from "@angular/core";
export declare class MediaPlayerService {
private readonly _frameExtractionService;
source: string;
type: MediaPlayerType;
loaded: boolean;
/** Aria Labels */
muteAriaLabel: (volume: number) => string;
playAriaLabel: (isPlaying: boolean) => string;
fullscreenAriaLabel: (isFullscreen: boolean) => string;
selectSubtitlesAriaLabel: (track: string) => string;
goToStartAriaLabel: string;
goToEndAriaLabel: string;
subtitlesTitleAriaLabel: string;
subtitlesOffAriaLabel: string;
noSubtitlesAriaLabel: string;
mediaPlayerAriaLabel: string;
seekAriaLabel: string;
playing: BehaviorSubject<boolean>;
initEvent: ReplaySubject<boolean>;
abortEvent: Subject<void>;
canPlayEvent: BehaviorSubject<boolean>;
canPlayThroughEvent: BehaviorSubject<boolean>;
durationChangeEvent: Subject<number>;
endedEvent: Subject<void>;
errorEvent: Subject<void>;
loadedDataEvent: Subject<void>;
loadedMetadataEvent: Subject<void>;
loadStartEvent: Subject<void>;
pauseEvent: Subject<void>;
playEvent: Subject<void>;
playingEvent: Subject<boolean>;
rateChangeEvent: Subject<number>;
seekedEvent: Subject<number>;
seekingEvent: Subject<number>;
stalledEvent: Subject<void>;
suspendEvent: Subject<void>;
timeUpdateEvent: Subject<number>;
volumeChangeEvent: Subject<number>;
waitingEvent: Subject<void>;
mediaClickEvent: Subject<MouseEvent>;
fullscreenEvent: BehaviorSubject<boolean>;
quietModeEvent: BehaviorSubject<boolean>;
progressEvent: Observable<TimeRanges>;
private _mediaPlayer;
private _hostElement;
private _fullscreen;
private _quietMode;
get mediaPlayer(): HTMLMediaElement;
get quietMode(): boolean;
set quietMode(value: boolean);
get mediaPlayerWidth(): number;
get mediaPlayerHeight(): number;
get autoplay(): boolean;
set autoplay(value: boolean);
get buffered(): TimeRanges;
get crossOrigin(): string;
set crossOrigin(value: string);
get currentSrc(): string;
get currentTime(): number;
set currentTime(value: number);
get defaultMuted(): boolean;
set defaultMuted(value: boolean);
get defaultPlaybackRate(): number;
set defaultPlaybackRate(value: number);
get duration(): number;
get ended(): boolean;
get loop(): boolean;
set loop(value: boolean);
get muted(): boolean;
set muted(value: boolean);
get networkState(): number;
get paused(): boolean;
get playbackRate(): number;
set playbackRate(value: number);
get played(): TimeRanges;
get preload(): '' | 'auto' | 'metadata' | 'none';
set preload(value: '' | 'auto' | 'metadata' | 'none');
get readyState(): number;
get seekable(): TimeRanges;
get seeking(): boolean;
get src(): string;
set src(value: string);
get textTracks(): Array<TextTrack>;
get volume(): number;
set volume(value: number);
get fullscreen(): boolean;
set fullscreen(value: boolean);
setMediaPlayer(hostElement: HTMLElement, mediaPlayer: HTMLMediaElement): void;
/**
* Toggle playing state
*/
togglePlay(): void;
/**
* Starts playing the audio/video
*/
play(): void;
/**
* Pauses the currently playing audio/video
*/
pause(): void;
/**
* Re-loads the audio/video element
*/
load(): void;
/**
* Checks if the browser can play the specified audio/video type
*/
canPlayType(type: string): string;
/**
* Adds a new text track to the audio/video
*/
addTextTrack(kind: 'subtitles' | 'captions' | 'descriptions' | 'chapters' | 'metadata', label: string, language: string): TextTrack;
/**
* Attempt to display media in fullscreen mode
*/
requestFullscreen(): void;
/**
* Exit full screen mode
*/
exitFullscreen(): void;
/**
* Toggle Fullscreen State
*/
toggleFullscreen(): void;
fullscreenChange(): void;
/**
* Extract the frames from the video
*/
getFrames(width: number, height: number): Observable<ExtractedFrame>;
hideSubtitleTracks(): void;
private getMuteAriaLabel;
private getPlayAriaLabel;
private getFullscreenAriaLabel;
private getSubtitlesAriaLabel;
static ɵfac: i0.ɵɵFactoryDeclaration<MediaPlayerService, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<MediaPlayerService>;
}