UNPKG

tiny-essentials

Version:

Collection of small, essential scripts designed to be used across various projects. These simple utilities are crafted for speed, ease of use, and versatility.

168 lines 7 kB
export default TinyHtmlMedia; export type ClassSetter = import("./TinyHtmlTemplate.mjs").ClassSetter; /** @typedef {import('./TinyHtmlTemplate.mjs').ClassSetter} ClassSetter */ /** * TinyHtmlMedia is a base helper for <audio> and <video> elements. * It provides a consistent API to control media playback and access * standard {@link HTMLMediaElement} properties and methods. * * @template {HTMLMediaElement} TinyHtmlT * @extends TinyHtmlTemplate<TinyHtmlT> */ declare class TinyHtmlMedia<TinyHtmlT extends HTMLMediaElement> extends TinyHtmlTemplate<TinyHtmlT> { /** * Creates a new TinyHtmlMedia instance. * @param {TinyHtmlT} tag - The HTML tag name (e.g., 'audio', 'video'). * @param {ClassSetter} [tags=[]] - Initial CSS classes to apply. * @param {ClassSetter} [mainClass=[]] - Main CSS classes to apply. */ constructor(tag: TinyHtmlT, tags?: ClassSetter, mainClass?: ClassSetter); /** * Plays all attached media elements. * @returns {Promise<void>} Resolves when all play calls complete. */ playMedia(): Promise<void>; /** * Pauses all attached media elements. * @returns {this} */ pauseMedia(): this; /** * Toggles play/pause state for all attached media elements. * @returns {this} */ togglePlayMedia(): this; /** * Stops all media by pausing and resetting the current time to `0`. * @returns {this} */ stopMedia(): this; set currentTime(t: number); /** @type {number} The current playback position in seconds. */ get currentTime(): number; /** * Reloads all attached media elements. * @returns {this} */ loadMedia(): this; /** * Adds a new text track to the first media element. * @param {TextTrackKind} kind - A string representing the TextTrack.kind property (subtitles, captions, descriptions, chapters, or metadata). * @param {string} [label] - A string representing the TextTrack.label property. * @param {string} [language] - A string representing the TextTrack.language property. * @returns {TextTrack} */ addTextTrack(kind: TextTrackKind, label?: string, language?: string): TextTrack; /** * Checks if a given MIME type can be played. * @param {string} type - MIME type (e.g., 'video/mp4'). * @returns {CanPlayTypeResult} Either "", "probably", or "maybe". */ canPlayType(type: string): CanPlayTypeResult; /** * Seeks quickly to a given time if supported. * @param {number} time - Target time in seconds. * @returns {this} */ fastSeek(time: number): this; /** * Sets custom MediaKeys on the first media element. * @param {MediaKeys|null} keys - Media keys to set. * @returns {Promise<void>} */ setMediaKeys(keys: MediaKeys | null): Promise<void>; /** * Assigns a sink ID (output device) to the first media element. * @param {string} id - The sink ID (device ID). * @returns {Promise<void>} */ setSinkId(id: string): Promise<void>; set autoplay(v: boolean); /** @type {boolean} Autoplay state of the media. */ get autoplay(): boolean; /** @returns {TimeRanges} The buffered time ranges. */ get buffered(): TimeRanges; set controls(v: boolean); /** @type {boolean} Whether default controls are visible. */ get controls(): boolean; set controlsList(v: string | null); /** @type {string|null} The list of controls available. */ get controlsList(): string | null; set crossOrigin(v: string | null); /** @type {string|null} CORS setting for the media. */ get crossOrigin(): string | null; /** @returns {string} The resolved source URL currently playing. */ get currentSrc(): string; set defaultMuted(v: boolean); /** @type {boolean} Whether media is muted by default. */ get defaultMuted(): boolean; set defaultPlaybackRate(v: number); /** @type {number} Default playback rate (1 = normal speed). */ get defaultPlaybackRate(): number; set disableRemotePlayback(v: boolean); /** @type {boolean} Whether remote playback is disabled. */ get disableRemotePlayback(): boolean; /** @returns {number} The duration of the media in seconds. */ get duration(): number; /** @returns {boolean} Whether the media has ended. */ get ended(): boolean; /** @returns {MediaError|null} Error state if media failed to load. */ get error(): MediaError | null; set loop(v: boolean); /** @type {boolean} Whether the media should loop. */ get loop(): boolean; set mediaGroup(v: string | null); /** @type {string|null} Media group name for synchronization. */ get mediaGroup(): string | null; /** @returns {MediaKeys|null} The associated MediaKeys object. */ get mediaKeys(): MediaKeys | null; set muted(state: boolean); /** @type {boolean} Whether the media is muted. */ get muted(): boolean; /** @returns {number} Network state (see `HTMLMediaElement.networkState`). */ get networkState(): number; /** @returns {boolean} Whether the media is currently paused. */ get paused(): boolean; set playbackRate(rate: number); /** @type {number} Current playback rate (1 = normal speed). */ get playbackRate(): number; /** @returns {TimeRanges} Played time ranges. */ get played(): TimeRanges; set preload(v: "" | "metadata" | "none" | "auto"); /** @type {"" | "metadata" | "none" | "auto"} Preload strategy ('none', 'metadata', 'auto'). */ get preload(): "" | "metadata" | "none" | "auto"; set preservesPitch(v: boolean); /** @type {boolean} Whether pitch is preserved when rate changes. */ get preservesPitch(): boolean; /** @returns {number} Ready state of the media. */ get readyState(): number; /** @returns {RemotePlayback|null} Remote playback interface. */ get remote(): RemotePlayback | null; /** @returns {TimeRanges} Seekable time ranges. */ get seekable(): TimeRanges; /** @returns {boolean} Whether the media is currently seeking. */ get seeking(): boolean; /** @returns {string} Current sink ID (output device). */ get sinkId(): string; set src(v: string | null); /** @type {string|null} Source URL of the media. */ get src(): string | null; set srcObject(v: MediaProvider | null); /** @type {MediaProvider|null} Current `srcObject` (e.g., MediaStream). */ get srcObject(): MediaProvider | null; /** @returns {TextTrackList} Available text tracks. */ get textTracks(): TextTrackList; /** * Sets the volume level. * @param {number} level - Value between 0.0 and 1.0. * @throws {TypeError} If not a number. */ set volume(level: number); /** * Gets the current volume. * @returns {number} Value between 0.0 and 1.0. */ get volume(): number; } import TinyHtmlTemplate from './TinyHtmlTemplate.mjs'; //# sourceMappingURL=TinyHtmlMedia.d.mts.map