UNPKG

livekit-client

Version:

JavaScript/TypeScript client SDK for LiveKit

55 lines 2.02 kB
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