@phenixrts/sdk
Version:
JavaScript SDK
45 lines (44 loc) • 1.83 kB
TypeScript
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;
}