import { ExternalParticipantId } from './ExternalId'; import { MediaType } from './ParticipantStreamDescription'; /** * Лейаут собеседника в звонке */ export type Layout = { /** * Ширина окошка в котором отображается видео, в пикселях (0 отключает видео) */ width: number; /** * Высота окошка в котором отображается видео, в пикселях (0 отключает видео) */ height: number; /** * Приоритет */ priority?: number; /** * Как видео вписано в вьюпорт, по аналогии с CSS object-fit. * Поддерживаемые значения: `cv` и `cn`, что соответствует CSS `cover` и `contain` */ fit?: string; }; /** * Запрос остановки стрима */ export type StopStream = { /** * Запрос на остановку стрима */ stopStream: true; }; /** * Request key frame from source. Should not be called often, negatively impacts video quality. */ export type RequestKeyFrame = { keyFrameRequested: true; }; /** * Лейаут собеседника в звонке */ export type ParticipantLayout = (Layout | StopStream | RequestKeyFrame) & { /** * Внешний ID пользователя */ uid: ExternalParticipantId | string; /** * Тип медиа (видео с камеры, картинка с экрана, лайв или мувик) */ mediaType: MediaType | null; /** * ID лайва или мувика. null для камеры или скрин-шары. */ streamName?: string; }; export default ParticipantLayout;