@phenixrts/sdk
Version:
JavaScript SDK
65 lines (64 loc) • 3.24 kB
TypeScript
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 Channel from '../channels/Channel';
import { IChannel } from '../channels/IChannel';
import ChannelState from '../channels/ChannelState';
import { DecodedFrameTimingInformation, RenderedFrameTimingInformation } from '../frameTiming/FrameTimingInformation';
import IsoBmffPlayer, { IsoBmffPlayerState } from './IsoBmffPlayer';
import IsoBmffPlayerEncodedStreamSinks from './IsoBmffPlayerEncodedStreamSinks';
export default class IsoBmffChannel implements IChannel {
private readonly _disposables;
private readonly _channel;
private readonly _isoBmffPlayer;
private readonly _isoBmffPlayerEncodedStreamSinks;
private _currentMediaStream;
constructor(channel: Channel, isoBmffPlayer: IsoBmffPlayer, isoBmffPlayerEncodedStreamSinks: IsoBmffPlayerEncodedStreamSinks);
get videoElement(): HTMLVideoElement | null;
set videoElement(_value: HTMLVideoElement);
get token(): EncodedEdgeToken;
set token(value: EncodedEdgeToken);
get tokenExpiring(): ReadOnlySubject<boolean>;
get state(): ReadOnlySubject<ChannelState>;
get exists(): ReadOnlySubject<boolean | null>;
get authorized(): ReadOnlySubject<boolean>;
get online(): ReadOnlySubject<boolean>;
get loading(): ReadOnlySubject<boolean>;
get playing(): ReadOnlySubject<boolean>;
get standby(): ReadOnlySubject<boolean>;
get stopped(): ReadOnlySubject<boolean>;
get autoMuted(): ReadOnlySubject<boolean>;
get autoPaused(): ReadOnlySubject<boolean>;
get endPoint(): ReadOnlySubject<EndPoint | null>;
get targetLag(): ReadOnlySubject<Millisecond>;
get lag(): ReadOnlySubject<Millisecond | undefined>;
get resolution(): ReadOnlySubject<Dimension>;
get failureCount(): ReadOnlySubject<number>;
get streamId(): string;
get stream(): ReadOnlySubject<IStream | null>;
get bitrateLimit(): BitsPerSecond;
get peerConnection(): ReadOnlySubject<IPeerConnection | null>;
get mediaStream(): ReadOnlySubject<MediaStream | null>;
get rtcStatistics(): ReadOnlySubject<IRtcMonitorStatistic | null>;
get isFrameTimingInformationEnabled(): ReadOnlySubject<boolean>;
get decodedFrameTimingInformation(): ReadOnlySubject<DecodedFrameTimingInformation | null>;
get renderedFrameTimingInformation(): ReadOnlySubject<RenderedFrameTimingInformation | null>;
get playerState(): ReadOnlySubject<IsoBmffPlayerState>;
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;
dispose(): Promise<void>;
private initialize;
private handleStreamUpdated;
private handleMediaStreamUpdated;
}