livekit-client
Version:
JavaScript/TypeScript client SDK for LiveKit
55 lines • 2.02 kB
TypeScript
import type { AudioReceiverStats } from '../stats';
import type { LoggerOptions } from '../types';
import RemoteTrack from './RemoteTrack';
import { Track } from './Track';
import type { AudioOutputOptions } from './options';
export default class RemoteAudioTrack extends RemoteTrack<Track.Kind.Audio> {
private prevStats?;
private elementVolume;
private audioContext?;
private gainNode?;
private sourceNode?;
private webAudioPluginNodes;
private sinkId?;
constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, audioContext?: AudioContext, audioOutput?: AudioOutputOptions, loggerOptions?: LoggerOptions);
/**
* sets the volume for all attached audio elements
*/
setVolume(volume: number): void;
/**
* gets the volume of attached audio elements (loudest)
*/
getVolume(): number;
/**
* calls setSinkId on all attached elements, if supported
* @param deviceId audio output device
*/
setSinkId(deviceId: string): Promise<void>;
attach(): HTMLMediaElement;
attach(element: HTMLMediaElement): HTMLMediaElement;
/**
* Detaches from all attached elements
*/
detach(): HTMLMediaElement[];
/**
* Detach from a single element
* @param element
*/
detach(element: HTMLMediaElement): HTMLMediaElement;
/**
* @internal
* @experimental
*/
setAudioContext(audioContext: AudioContext | undefined): void;
/**
* @internal
* @experimental
* @param {AudioNode[]} nodes - An array of WebAudio nodes. These nodes should not be connected to each other when passed, as the sdk will take care of connecting them in the order of the array.
*/
setWebAudioPlugins(nodes: AudioNode[]): void;
private connectWebAudio;
private disconnectWebAudio;
protected monitorReceiver: () => Promise<void>;
protected getReceiverStats(): Promise<AudioReceiverStats | undefined>;
}
//# sourceMappingURL=RemoteAudioTrack.d.ts.map