Files
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

51 lines
1.1 KiB
TypeScript
Executable File

import {MediaStreamType} from '@common/player/state/player-state';
interface BaseMediaItem<T = any> {
id: string | number;
groupId?: string | number;
provider: 'youtube' | 'htmlAudio' | 'htmlVideo' | 'hls' | 'dash';
meta?: T;
initialTime?: number;
poster?: string;
captions?: {
id: string | number;
label: string;
src: string;
language?: string;
}[];
}
export interface YoutubeMediaItem<T = any> extends BaseMediaItem<T> {
provider: 'youtube';
src: 'resolve' | string;
}
export interface HlsMediaItem<T = any> extends BaseMediaItem<T> {
provider: 'hls';
src: string;
streamType?: MediaStreamType;
}
export interface DashMediaItem<T = any> extends BaseMediaItem<T> {
provider: 'dash';
src: string;
streamType?: MediaStreamType;
}
export interface HtmlAudioMediaItem<T = any> extends BaseMediaItem<T> {
provider: 'htmlAudio';
src: string;
}
export interface HtmlVideoMediaItem<T = any> extends BaseMediaItem<T> {
provider: 'htmlVideo';
src: string;
}
export type MediaItem<T = any> =
| YoutubeMediaItem<T>
| HtmlAudioMediaItem<T>
| HtmlVideoMediaItem<T>
| HlsMediaItem<T>
| DashMediaItem<T>;