@ux-aspects/ux-aspects
Version:
Open source user interface framework for building modern, responsive, mobile big data applications
79 lines (78 loc) • 5.01 kB
TypeScript
import { AfterViewInit, OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { AudioMetadata } from '../../services/audio/index';
import { MediaPlayerService } from './media-player.service';
import * as i0 from "@angular/core";
export declare class MediaPlayerComponent implements AfterViewInit, OnDestroy {
readonly mediaPlayerService: MediaPlayerService;
private readonly _audioService;
private readonly _elementRef;
private readonly _playerRef;
hovering: boolean;
focused: boolean;
audioMetadata: Observable<AudioMetadata>;
/** The `anonymous` keyword means that there will be no exchange of user credentials when the media source is fetched. */
crossorigin: 'use-credentials' | 'anonymous';
/** Overwrite the filename displayed in the audio media player */
filename: string;
get source(): string;
/** The url to the media file to be loaded by the media player. */
set source(value: string);
get type(): MediaPlayerType;
/**
* Defines the appearance of the media player. The two possible values are `video` and `audio`.
* The media player will adapt it's appearance to best suit the type specified.
*/
set type(value: MediaPlayerType);
get quietMode(): boolean;
/**
* If enabled, the controls in the media player will be hidden unless the mouse is over the player and will appear in a darker style.
* Dark mode is automatically enabled in full screen mode. Quiet mode is only available for videos.
*/
set quietMode(value: boolean);
/**
* If specified the function will be called passing the current volume as an argument.
* It should return an appropriate aria-label for the mute/unmute button.
*/
set muteAriaLabel(fn: (volume: number) => string);
/**
* If specified the function will be called passing the current playing state as an argument.
* It should return an appropriate aria-label for the play/pause button.
*/
set playAriaLabel(fn: (isPlaying: boolean) => string);
/**
* If specified the function will be called passing the current fullscreen state as an argument.
* It should return an appropriate aria-label for the fullscreen toggle button.
*/
set fullscreenAriaLabel(fn: (isFullscreen: boolean) => string);
/**
* If specified the function will be called passing the current track as an argument.
* It should return an appropriate aria-label for the subtitle selection button.
*/
set selectSubtitlesAriaLabel(fn: (track: string) => string);
/** Defines an aria-label for the go to start button. */
set goToStartAriaLabel(ariaLabel: string);
/** Defines an aria-label for the go to end button. */
set goToEndAriaLabel(ariaLabel: string);
/** Defines an aria-label for the title displayed in the subtitle selection popover. */
set subtitlesTitleAriaLabel(ariaLabel: string);
/** Defines an aria-label to indicate subtitle are not currently enabled. */
set subtitlesOffAriaLabel(ariaLabel: string);
/** Define an aria-label to indicate there are no subtitles available. */
set noSubtitlesAriaLabel(ariaLabel: string);
/** Define an aria-label for the media player. */
set mediaPlayerAriaLabel(ariaLabel: string);
/** Define an aria-label for the the seek element. */
set seekAriaLabel(ariaLabel: string);
private readonly _onDestroy;
constructor();
ngAfterViewInit(): void;
ngOnDestroy(): void;
static ɵfac: i0.ɵɵFactoryDeclaration<MediaPlayerComponent, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<MediaPlayerComponent, "ux-media-player", never, { "crossorigin": { "alias": "crossorigin"; "required": false; }; "filename": { "alias": "filename"; "required": false; }; "source": { "alias": "source"; "required": false; }; "type": { "alias": "type"; "required": false; }; "quietMode": { "alias": "quietMode"; "required": false; }; "muteAriaLabel": { "alias": "muteAriaLabel"; "required": false; }; "playAriaLabel": { "alias": "playAriaLabel"; "required": false; }; "fullscreenAriaLabel": { "alias": "fullscreenAriaLabel"; "required": false; }; "selectSubtitlesAriaLabel": { "alias": "selectSubtitlesAriaLabel"; "required": false; }; "goToStartAriaLabel": { "alias": "goToStartAriaLabel"; "required": false; }; "goToEndAriaLabel": { "alias": "goToEndAriaLabel"; "required": false; }; "subtitlesTitleAriaLabel": { "alias": "subtitlesTitleAriaLabel"; "required": false; }; "subtitlesOffAriaLabel": { "alias": "subtitlesOffAriaLabel"; "required": false; }; "noSubtitlesAriaLabel": { "alias": "noSubtitlesAriaLabel"; "required": false; }; "mediaPlayerAriaLabel": { "alias": "mediaPlayerAriaLabel"; "required": false; }; "seekAriaLabel": { "alias": "seekAriaLabel"; "required": false; }; }, {}, never, ["track", "[uxMediaPlayerCustomControl]"], false, never>;
}
export type MediaPlayerType = 'video' | 'audio';
export interface MediaPlayerBuffer {
start: number;
end: number;
}