fleeta-api-lib
Version:
A comprehensive library for fleet management applications - API, Auth, Device management
76 lines • 1.98 kB
TypeScript
/**
* Audio Manager
* Handles all audio-related functionality for WebRTC connections
*/
/**
* Audio stream configuration
*/
interface AudioConfig {
echoCancellation?: boolean;
noiseSuppression?: boolean;
autoGainControl?: boolean;
sampleRate?: number;
channelCount?: number;
}
/**
* Audio Manager class
* Separated from WebRTCConnection for better organization and testability
*/
export declare class AudioManager {
private localAudioStream;
private isLocalAudioEnabled;
private isTwoWayActive;
private audioConfig;
private audioTrackMonitor;
constructor(audioConfig?: AudioConfig);
/**
* Start two-way audio communication
*/
startTwoWayAudio(peerConnection: RTCPeerConnection): Promise<void>;
/**
* Stop two-way audio communication
*/
stopTwoWayAudio(peerConnection?: RTCPeerConnection): Promise<void>;
/**
* Enable/disable local audio (microphone mute/unmute)
*/
setLocalAudioEnabled(enabled: boolean): void;
/**
* Get local audio stream
*/
getLocalAudioStream(): MediaStream | null;
/**
* Check if two-way audio is active
*/
isTwoWayAudioActive(): boolean;
/**
* Check if local audio is enabled
*/
isLocalAudioMuted(): boolean;
/**
* Update audio configuration
*/
updateConfig(newConfig: Partial<AudioConfig>): void;
/**
* Clean up all audio resources
*/
cleanup(): void;
/**
* Renegotiate peer connection for audio
*/
private renegotiateForAudio;
/**
* Start monitoring actual audio transmission
*/
private startAudioTransmissionMonitoring;
/**
* Stop audio transmission monitoring
*/
private stopAudioTransmissionMonitoring;
/**
* Mark audio renegotiation in progress (communicates with WebRTCConnection)
*/
private markAudioRenegotiationInProgress;
}
export {};
//# sourceMappingURL=AudioManager.d.ts.map