agora-rtc-sdk-ng
Version:
Agora WebRTC SDK for JavaScript
98 lines (92 loc) • 3.03 kB
TypeScript
import { Candidate, Setup, FingerPrint, AgoraAudioReceiverStats } from '@agora-js/shared';
import { RTPCapabilitiesWithDirection } from '@agora-js/protocol';
interface ICEParameters {
iceUfrag: string;
icePwd: string;
}
interface DtlsParameters {
fingerprints: FingerPrint[];
}
declare enum Kind {
VIDEO = "video",
AUDIO = "audio"
}
type ConnectionParams = {
iceParameters: ICEParameters;
dtlsParameters: DtlsParameters;
candidates: Candidate[];
rtpCapabilities: RTPCapabilitiesWithDirection;
setup: Setup;
cname: string;
preallocation?: boolean;
preSSRCs?: PreSSRCMessage[];
};
type SSRCMessage = {
ssrcId: number;
rtx?: number;
}[];
type PreSSRCMessage = {
kind: Kind;
ssrcMsg: SSRCMessage;
mslabel: string;
};
interface AiAudioModeExtension {
receiveByRTCMedia(kind: Kind, ssrcMsg: SSRCMessage, cname: string | undefined): Promise<{
track: MediaStreamTrack;
id: string;
}>;
play(): void;
stop(): void;
stopReceiving(): void;
onMute(): void;
onUnmute(): void;
close(): void;
setRemoteRtpCapabilities(connectParams: ConnectionParams): void;
getStats(): AgoraAudioReceiverStats;
setAudioMetadataHandler(handler: ((metadata: Uint8Array) => void) | null): void;
setAudioPtsHandler(handler: ((pts: bigint) => void) | null): void;
}
declare class AiAudioModeMedia implements AiAudioModeExtension {
private _dc;
static activeInstance: AiAudioModeMedia | null;
private _neteq;
private _pcmSource;
private _outputTrack;
private _dataChannel;
private _remoteRtpCapabilities;
private _initialized;
private _receiving;
private _boundSsrcId;
private _mid;
private _muted;
private _muteTime;
private _audioMetadataHandler;
private _audioPtsHandler;
constructor(_dc: RTCDataChannel);
receiveByRTCMedia(kind: Kind, ssrcMsg: SSRCMessage, cname: string | undefined): Promise<{
track: MediaStreamTrack;
id: string;
}>;
play(): void;
stop(): void;
stopReceiving(): void;
onMute(): void;
onUnmute(): void;
private _resume;
close(): void;
setRemoteRtpCapabilities(connectParams: ConnectionParams): void;
getStats(): AgoraAudioReceiverStats;
setAudioMetadataHandler(handler: ((metadata: Uint8Array) => void) | null): void;
setAudioPtsHandler(handler: ((pts: bigint) => void) | null): void;
private _init;
private _onDcMessage;
private _sendRtcp;
}
type TRteServiceName = "ChannelMediaRelay" | "LiveStreaming" | "ImageModeration" | "ContentInspect" | "DataStream" | "P2PChannel" | "PlanBConnection" | "InterceptFrame" | "DataChannelConnection" | "DataChannelSignal" | "AiAudioModeExtension";
interface IRteService<T = any, R = any> {
name: TRteServiceName;
create: (...args: any[]) => T;
createSubmodule?: (...args: any[]) => R;
}
declare const AiAudioModeService: IRteService<AiAudioModeMedia>;
export { type AiAudioModeExtension, AiAudioModeService };