livekit-client
Version:
JavaScript/TypeScript client SDK for LiveKit
58 lines • 2.16 kB
TypeScript
import type { LoggerOptions } from '../types';
import RemoteTrack from './RemoteTrack';
import { Track } from './Track';
import type { AdaptiveStreamSettings } from './types';
export default class RemoteVideoTrack extends RemoteTrack<Track.Kind.Video> {
private prevStats?;
private elementInfos;
private adaptiveStreamSettings?;
private lastVisible?;
private lastDimensions?;
constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, adaptiveStreamSettings?: AdaptiveStreamSettings, loggerOptions?: LoggerOptions);
get isAdaptiveStream(): boolean;
/**
* Note: When using adaptiveStream, you need to use remoteVideoTrack.attach() to add the track to a HTMLVideoElement, otherwise your video tracks might never start
*/
get mediaStreamTrack(): MediaStreamTrack;
/** @internal */
setMuted(muted: boolean): void;
attach(): HTMLMediaElement;
attach(element: HTMLMediaElement): HTMLMediaElement;
/**
* Observe an ElementInfo for changes when adaptive streaming.
* @param elementInfo
* @internal
*/
observeElementInfo(elementInfo: ElementInfo): void;
/**
* Stop observing an ElementInfo for changes.
* @param elementInfo
* @internal
*/
stopObservingElementInfo(elementInfo: ElementInfo): void;
detach(): HTMLMediaElement[];
detach(element: HTMLMediaElement): HTMLMediaElement;
/** @internal */
getDecoderImplementation(): string | undefined;
protected monitorReceiver: () => Promise<void>;
private getReceiverStats;
private stopObservingElement;
protected handleAppVisibilityChanged(): Promise<void>;
private readonly debouncedHandleResize;
private updateVisibility;
private updateDimensions;
private getPixelDensity;
}
export interface ElementInfo {
element: object;
width(): number;
height(): number;
visible: boolean;
pictureInPicture: boolean;
visibilityChangedAt: number | undefined;
handleResize?: () => void;
handleVisibilityChanged?: () => void;
observe(): void;
stopObserving(): void;
}
//# sourceMappingURL=RemoteVideoTrack.d.ts.map