cordova-plugin-audioinput
Version:
Audio input capture plugin for Cordova and Capacitor - real-time microphone access with streaming and file recording support
111 lines (98 loc) • 2.76 kB
TypeScript
import type {
AudioDataEvent,
AudioErrorEvent,
AudioFinishedEvent,
AudioInputOptions,
AudioInputPlugin,
AudioStateEvent,
PluginListenerHandle,
} from './src/definitions';
export type {
AudioDataEvent,
AudioErrorEvent,
AudioFinishedEvent,
AudioInputOptions,
AudioInputPlugin,
AudioStateEvent,
PluginListenerHandle,
} from './src/definitions';
export { AudioSourceType, SampleRate } from './src/definitions';
/**
* Capacitor/Cordova plugin runtime value.
*/
export declare const AudioInput: AudioInputPlugin;
/**
* Legacy callback-oriented Cordova configuration.
* @deprecated Prefer AudioInputOptions with the Promise API.
*/
export interface AudioInputConfiguration extends AudioInputOptions {
streamToWebAudio?: boolean;
audioContext?: AudioContext;
concatenateMaxChunks?: number;
onError?: (message: string) => void;
debug?: boolean;
}
/**
* Legacy callback-oriented Cordova interface.
* @deprecated Prefer the `AudioInput` exported value and Promise API.
*/
export interface AudioInputLegacy {
FORMAT: {
PCM_16BIT: string;
PCM_8BIT: string;
};
CHANNELS: {
MONO: number;
STEREO: number;
};
SAMPLERATE: {
TELEPHONE_8000Hz: number;
CD_QUARTER_11025Hz: number;
VOIP_16000Hz: number;
CD_HALF_22050Hz: number;
MINI_DV_32000Hz: number;
CD_XA_37800Hz: number;
NTSC_44056Hz: number;
CD_AUDIO_44100Hz: number;
};
AUDIOSOURCE_TYPE: {
DEFAULT: number;
CAMCORDER: number;
MIC: number;
UNPROCESSED: number;
VOICE_COMMUNICATION: number;
VOICE_RECOGNITION: number;
};
initialize(cfg: AudioInputConfiguration, onComplete: (result?: unknown) => void): void;
checkMicrophonePermission(onComplete: (granted: boolean) => void): void;
getMicrophonePermission(onComplete: (granted: boolean) => void): void;
start(cfg: AudioInputConfiguration): void;
stop(onStopped: (result?: unknown) => void): void;
connect(audioNode: AudioNode): void;
disconnect(): void;
getAudioContext(): AudioContext;
getCfg(): AudioInputConfiguration;
isCapturing(): boolean | unknown[];
addListener(
eventName: 'audioData',
listenerFunc: (event: AudioDataEvent) => void,
): Promise<PluginListenerHandle>;
addListener(
eventName: 'audioError',
listenerFunc: (event: AudioErrorEvent) => void,
): Promise<PluginListenerHandle>;
addListener(
eventName: 'audioInputFinished',
listenerFunc: (event: AudioFinishedEvent) => void,
): Promise<PluginListenerHandle>;
addListener(
eventName: 'stateChange',
listenerFunc: (event: AudioStateEvent) => void,
): Promise<PluginListenerHandle>;
}
declare global {
interface Window {
audioinput: AudioInputLegacy;
}
const audioinput: AudioInputLegacy;
}