apphouse
Version:
Component library for React that uses observable state management and theme-able components.
56 lines (55 loc) • 1.83 kB
TypeScript
export interface MicrophoneOption {
value: string;
label: string;
}
export interface MicrophoneInfo {
channelCount: {
min: number | undefined;
max: number | undefined;
value: number | undefined;
};
sampleRate: {
min: number | undefined;
max: number | undefined;
value: number | undefined;
};
sampleSize: {
min: number | undefined;
max: number | undefined;
value: number | undefined;
};
latency: {
min: number | undefined;
max: number | undefined;
};
autoGainControl: boolean | undefined;
echoCancellation: boolean | undefined;
noiseSuppression: boolean | undefined;
}
export default class Microphone {
devices: MediaDeviceInfo[];
selectedDevice?: MediaStream;
selectedDeviceId?: string;
stream: MediaStream | undefined;
track: MediaStreamTrack | undefined;
constructor();
get isReady(): boolean;
get currentTrack(): MediaStreamTrack | undefined;
get currentMicrophone(): MicrophoneOption | undefined;
get streamingStream(): MediaStream | undefined;
get microphoneOptions(): MicrophoneOption[];
get systemInputs(): MediaDeviceInfo[];
get microphoneDetails(): MicrophoneInfo;
init: () => Promise<boolean>;
loadDefault: () => Promise<boolean>;
loadSystemDevices: () => Promise<boolean>;
setMediaStreamTrack: (stream: MediaStream | undefined) => boolean;
onMicrophoneChange: (newValue: MicrophoneOption | null | undefined) => Promise<boolean>;
setSelectedDevice: (device: MediaStream, deviceId: string) => void;
startStream: () => Promise<boolean>;
stopStreaming: () => void;
pauseStreaming: () => void;
resumeStreaming: () => void;
resetMicData: () => void;
printStreamInfo: () => void;
}