import LiveStatus from '../enums/LiveStatus'; import { CompositeUserId, ParticipantId } from './Participant'; import { MediaType } from './ParticipantStreamDescription'; /** * Preview изображения ролика */ export interface IMoviePreview { /** * Ссылка на изображение */ url: string; /** * Ширина изображения */ width: number; /** * Высота изображения */ height: number; } /** * MetaData ролика */ export interface IMovieMetaData { /** * Название ролика */ title?: string; /** * Список Preview */ thumbnails?: IMoviePreview[]; } /** * Параметры для добавления ролика в Совместный Просмотр */ export interface IAddMovieParams { /** * ID Ролика */ movieId: number; /** * Начальная громкость */ gain?: number; /** * MetaData ролика */ metadata?: IMovieMetaData; /** * Локаль пользователя, необходимо для корректного перевода, если ролик с дефолтным названием */ lang?: string; } export type ISharedMovieStateResponse = [ number, number, boolean, number, boolean, number, number ]; /** * Состояние проигрываемого ролика */ export interface ISharedMovieState { /** * ID Инициатора совместного просмотра * @hidden */ participantId: ParticipantId; /** * Громкость */ gain?: number; /** * Находится ли в состоянии паузы */ pause?: boolean; /** * Время прошедшее с начала ролика (сек) */ offset?: number; /** * Находится ли в стостоянии временного мьюта звука */ mute?: boolean; /** * Состояние лайва * @hidden */ liveStatus?: LiveStatus; /** * Время до начала трансляции * @hidden */ startTimeMs: number; } /** * Параментры для обновления состояния ролика */ export interface IUpdateMovieData { /** * Id ролика */ movieId: number; /** * Громкость */ gain?: number; /** * Поставить на паузу / снять с паузы */ pause?: boolean; /** * Перемотать на n секунд */ offset?: number; /** * Временно отключить звук / включить звук в предыдущее состояние */ mute?: boolean; } /** * Информация по добавленному ролику в Совместный просмотр */ export interface ISharedMovieInfo { /** * Id ролика */ movieId: number; /** * Id инициатора совсместного просмотра * @hidden */ initiatorId: CompositeUserId; /** * Название ролика */ title: string; /** * Тип ролика (на данный момент STREAM или MOVIE) */ source: MediaType; /** * Внешний Id ролика */ externalMovieId: string; /** * Продолжительность ролика в секундах */ duration: number; /** * Массив Preview */ thumbnails: IMoviePreview[]; } /** * Информация по удоленному из Совместного Просмотра ролику */ export interface ISharedMovieStoppedInfo { /** * Id ролика */ movieId: number; /** * Id инициатора совсместного просмотра * @hidden */ initiatorId: CompositeUserId; /** * Тип ролика (на данный момент STREAM или MOVIE) */ source: MediaType; } /** * Информация по пришедшему стриму ролика в Совместном просмотре */ export interface IOnRemoteMovieData { /** * Id стрима */ streamName: string; /** * Стрим */ stream: MediaStream | null; /** * Тип ролика (на данный момент STREAM или MOVIE) */ mediaType: MediaType; }