UNPKG

@phenixrts/sdk

Version:
49 lines (48 loc) 2.5 kB
import IDisposable from '../../lang/IDisposable'; import { Millisecond, BitsPerSecond } from '../../units/Units'; import ReadOnlySubject from '../../rx/ReadOnlySubject'; import Dimension from '../../video/Dimension'; import IPeerConnection from '../../rtc/IPeerConnection'; import { IRtcMonitorStatistic } from '../../rtc/RtcConnectionMonitor'; import { EncodedEdgeToken } from '../../edgeAuth/EncodedEdgeToken'; import EndPoint, { IStream } from '../discovery/EndPoint'; import { DecodedFrameTimingInformation, RenderedFrameTimingInformation } from '../frameTiming/FrameTimingInformation'; import ChannelState from './ChannelState'; export interface IChannel extends IDisposable { videoElement: HTMLVideoElement | null; token: EncodedEdgeToken; readonly exists: ReadOnlySubject<boolean | null>; readonly tokenExpiring: ReadOnlySubject<boolean>; readonly state: ReadOnlySubject<ChannelState>; readonly authorized: ReadOnlySubject<boolean>; readonly online: ReadOnlySubject<boolean>; readonly loading: ReadOnlySubject<boolean>; readonly playing: ReadOnlySubject<boolean>; readonly standby: ReadOnlySubject<boolean>; readonly stopped: ReadOnlySubject<boolean>; readonly autoMuted: ReadOnlySubject<boolean>; readonly autoPaused: ReadOnlySubject<boolean>; readonly endPoint: ReadOnlySubject<EndPoint | null>; readonly targetLag: ReadOnlySubject<Millisecond>; readonly lag: ReadOnlySubject<Millisecond | undefined>; readonly resolution: ReadOnlySubject<Dimension>; readonly failureCount: ReadOnlySubject<number>; readonly streamId: string; readonly stream: ReadOnlySubject<IStream | null>; readonly bitrateLimit: BitsPerSecond; readonly peerConnection: ReadOnlySubject<IPeerConnection | null>; readonly mediaStream: ReadOnlySubject<MediaStream | null>; readonly rtcStatistics: ReadOnlySubject<IRtcMonitorStatistic | null>; readonly isFrameTimingInformationEnabled: ReadOnlySubject<boolean>; readonly decodedFrameTimingInformation: ReadOnlySubject<DecodedFrameTimingInformation | null>; readonly renderedFrameTimingInformation: ReadOnlySubject<RenderedFrameTimingInformation | null>; play(): Promise<void>; resume(): Promise<void>; stop(reason: string): Promise<void>; mute(): void; unmute(): void; setBitrateLimit(bitrateLimit: BitsPerSecond): void; clearBitrateLimit(): void; updateTargetLag(lag: Millisecond): void; getUri(token: EncodedEdgeToken): URL; }