react-native-audio-recorder-player
Version:
React Native Audio Recorder and Player.
263 lines (241 loc) • 6.73 kB
Flow
/**
* Flowtype definitions for index
* Generated by Flowgen from a Typescript Definition
* Flowgen v1.21.0
*/
declare export var AudioSourceAndroidType: {|
+DEFAULT: 0, // 0
+MIC: 1, // 1
+VOICE_UPLINK: 2, // 2
+VOICE_DOWNLINK: 3, // 3
+VOICE_CALL: 4, // 4
+CAMCORDER: 5, // 5
+VOICE_RECOGNITION: 6, // 6
+VOICE_COMMUNICATION: 7, // 7
+REMOTE_SUBMIX: 8, // 8
+UNPROCESSED: 9, // 9
+RADIO_TUNER: 1998, // 1998
+HOTWORD: 1999, // 1999
|};
declare export var OutputFormatAndroidType: {|
+DEFAULT: 0, // 0
+THREE_GPP: 1, // 1
+MPEG_4: 2, // 2
+AMR_NB: 3, // 3
+AMR_WB: 4, // 4
+AAC_ADIF: 5, // 5
+AAC_ADTS: 6, // 6
+OUTPUT_FORMAT_RTP_AVP: 7, // 7
+MPEG_2_TS: 8, // 8
+WEBM: 9, // 9
+UNUSED: 10, // 10
+OGG: 11, // 11
|};
declare export var AudioEncoderAndroidType: {|
+DEFAULT: 0, // 0
+AMR_NB: 1, // 1
+AMR_WB: 2, // 2
+AAC: 3, // 3
+HE_AAC: 4, // 4
+AAC_ELD: 5, // 5
+VORBIS: 6, // 6
+OPUS: 7, // 7
|};
declare export var AVEncodingOption: {|
+lpcm: "lpcm", // "lpcm"
+ima4: "ima4", // "ima4"
+aac: "aac", // "aac"
+MAC3: "MAC3", // "MAC3"
+MAC6: "MAC6", // "MAC6"
+ulaw: "ulaw", // "ulaw"
+alaw: "alaw", // "alaw"
+mp1: "mp1", // "mp1"
+mp2: "mp2", // "mp2"
+mp4: "mp4", // "mp4"
+alac: "alac", // "alac"
+amr: "amr", // "amr"
+flac: "flac", // "flac"
+opus: "opus", // "opus"
+wav: "wav", // "wav"
|};
declare type AVEncodingType =
| typeof AVEncodingOption.lpcm
| typeof AVEncodingOption.ima4
| typeof AVEncodingOption.aac
| typeof AVEncodingOption.MAC3
| typeof AVEncodingOption.MAC6
| typeof AVEncodingOption.ulaw
| typeof AVEncodingOption.alaw
| typeof AVEncodingOption.mp1
| typeof AVEncodingOption.mp2
| typeof AVEncodingOption.mp4
| typeof AVEncodingOption.alac
| typeof AVEncodingOption.amr
| typeof AVEncodingOption.flac
| typeof AVEncodingOption.opus
| typeof AVEncodingOption.wav;
declare export var AVModeIOSOption: {|
+gamechat: "gamechat", // "gamechat"
+measurement: "measurement", // "measurement"
+movieplayback: "movieplayback", // "movieplayback"
+spokenaudio: "spokenaudio", // "spokenaudio"
+videochat: "videochat", // "videochat"
+videorecording: "videorecording", // "videorecording"
+voicechat: "voicechat", // "voicechat"
+voiceprompt: "voiceprompt", // "voiceprompt"
|};
export type AVModeIOSType =
| typeof AVModeIOSOption.gamechat
| typeof AVModeIOSOption.measurement
| typeof AVModeIOSOption.movieplayback
| typeof AVModeIOSOption.spokenaudio
| typeof AVModeIOSOption.videochat
| typeof AVModeIOSOption.videorecording
| typeof AVModeIOSOption.voicechat
| typeof AVModeIOSOption.voiceprompt;
declare export var AVEncoderAudioQualityIOSType: {|
+min: 0, // 0
+low: 32, // 32
+medium: 64, // 64
+high: 96, // 96
+max: 127, // 127
|};
declare export var AVLinearPCMBitDepthKeyIOSType: {|
+bit8: 8, // 8
+bit16: 16, // 16
+bit24: 24, // 24
+bit32: 32, // 32
|};
export interface AudioSet {
AVSampleRateKeyIOS?: number;
AVFormatIDKeyIOS?: AVEncodingType;
AVModeIOS?: AVModeIOSType;
AVNumberOfChannelsKeyIOS?: number;
AVEncoderAudioQualityKeyIOS?: $Values<typeof AVEncoderAudioQualityIOSType>;
AudioSourceAndroid?: $Values<typeof AudioSourceAndroidType>;
AVLinearPCMBitDepthKeyIOS?: $Values<typeof AVLinearPCMBitDepthKeyIOSType>;
AVLinearPCMIsBigEndianKeyIOS?: boolean;
AVLinearPCMIsFloatKeyIOS?: boolean;
AVLinearPCMIsNonInterleavedIOS?: boolean;
AVEncoderBitRateKeyIOS?: number;
OutputFormatAndroid?: $Values<typeof OutputFormatAndroidType>;
AudioEncoderAndroid?: $Values<typeof AudioEncoderAndroidType>;
AudioEncodingBitRateAndroid?: number;
AudioSamplingRateAndroid?: number;
AudioChannelsAndroid?: number;
}
export type RecordBackType = {
isRecording?: boolean,
currentPosition: number,
currentMetering?: number,
...
};
export type PlayBackType = {
isMuted?: boolean,
currentPosition: number,
duration: number,
isFinished: boolean,
...
};
declare class AudioRecorderPlayer {
mmss: (secs: number) => string;
mmssss: (milisecs: number) => string;
/**
* Set listerner from native module for recorder.
* @returns {callBack} ((e: RecordBackType): void)}
*/
addRecordBackListener: (
callback: (recordingMeta: RecordBackType) => void
) => void;
/**
* Remove listener for recorder.
* @returns {void}
*/
removeRecordBackListener: () => void;
/**
* Set listener from native module for player.
* @returns {callBack} ((e: PlayBackType): void)}
*/
addPlayBackListener: (callback: (playbackMeta: PlayBackType) => void) => void;
/**
* remove listener for player.
* @returns {void}
*/
removePlayBackListener: () => void;
/**
* start recording with param.
* @param {string} uri audio uri.
* @returns {Promise<string>}
*/
startRecorder: (
uri?: string,
audioSets?: AudioSet,
meteringEnabled?: boolean
) => Promise<string>;
/**
* Pause recording.
* @returns {Promise<string>}
*/
pauseRecorder: () => Promise<string>;
/**
* Resume recording.
* @returns {Promise<string>}
*/
resumeRecorder: () => Promise<string>;
/**
* stop recording.
* @returns {Promise<string>}
*/
stopRecorder: () => Promise<string>;
/**
* Resume playing.
* @returns {Promise<string>}
*/
resumePlayer: () => Promise<string>;
playerCallback: (event: PlayBackType) => void;
/**
* Start playing with param.
* @param {string} uri audio uri.
* @param {{[key: string]: string, ...}} httpHeaders Set of http headers.
* @returns {Promise<string>}
*/
startPlayer: (
uri?: string,
httpHeaders?: { [key: string]: string, ... }
) => Promise<string>;
/**
* Stop playing.
* @returns {Promise<string>}
*/
stopPlayer: () => Promise<string>;
/**
* Pause playing.
* @returns {Promise<string>}
*/
pausePlayer: () => Promise<string>;
/**
* Seek to.
* @param {number} time position seek to in millisecond.
* @returns {Promise<string>}
*/
seekToPlayer: (time: number) => Promise<string>;
/**
* Set volume.
* @param {number} setVolume set volume.
* @returns {Promise<string>}
*/
setVolume: (volume: number) => Promise<string>;
/**
* Set playback speed.
* @param {number} setPlaybackSpeed set playback speed.
* @returns {Promise<string>}
*/
setPlaybackSpeed: (playbackSpeed: number) => Promise<string>;
/**
* Set subscription duration. Default is 0.5.
* @param {number} sec subscription callback duration in seconds.
* @returns {Promise<string>}
*/
setSubscriptionDuration: (sec: number) => Promise<string>;
}
declare export default typeof AudioRecorderPlayer;