UNPKG

@phenixrts/sdk

Version:
45 lines (44 loc) 1.83 kB
import Subject from '../../rx/Subject'; import ChannelState from '../channels/ChannelState'; import Dimension from '../../video/Dimension'; import EndPoint, { IStream, SubscribeStatus } from '../discovery/EndPoint'; import VideoTelemetry from '../../video/VideoTelemetry'; import { IRtcMonitorStatistic, IRtcStatistic } from '../../rtc/RtcConnectionMonitor'; import DisposableList from '../../lang/DisposableList'; import { BitsPerSecond, Millisecond } from '../../units/Units'; export type ChannelContextOptions = { targetLag?: number; }; export default class ChannelContext { channelInitialization: Date; disposables: DisposableList; channelDisposables: DisposableList; rendererDisposables: DisposableList; videoElement: Subject<HTMLVideoElement | null>; state: Subject<ChannelState>; autoMuted: Subject<boolean>; autoPaused: Subject<boolean>; authorized: Subject<boolean>; online: Subject<boolean>; loading: Subject<boolean>; playing: Subject<boolean>; standby: Subject<boolean>; stopped: Subject<boolean>; targetLag: Subject<Millisecond>; lag: Subject<Millisecond | undefined>; bitrateLimit: Subject<BitsPerSecond>; resolution: Subject<Dimension>; failureCount: Subject<number>; endPoint: Subject<EndPoint | null>; stream: Subject<IStream | null>; rtcStatistics: Subject<IRtcMonitorStatistic | null>; videoTelemetry: VideoTelemetry | null; rtcAudioStatistic: IRtcStatistic | null; rtcVideoStatistic: IRtcStatistic | null; clearFailureCountTimeout: number; constructor(options?: ChannelContextOptions); get streamId(): string; applyStatus(status: SubscribeStatus): void; applySessionAndStreamPropertiesToVideoElement(): void; mapSubscribeStatusToChannelStatus(status: SubscribeStatus): ChannelState; }