@slan-health/taro-vueuse
Version:
taro vue版本hooks
121 lines (120 loc) • 3.75 kB
TypeScript
export interface RecordManagerOption {
onStart: (res: TaroGeneral.CallbackResult) => void;
onPause: (res: TaroGeneral.CallbackResult) => void;
onStop: OnStopCallback;
onError: OnErrorCallback;
/** 是否去录音状态,false则授权完成不去录音,true授权完成直接开始录音 */
recorderStatus: () => boolean;
}
interface OnErrorCallbackResult extends TaroGeneral.CallbackResult {
/** 错误信息 */
errMsg: string;
}
/** 录音错误事件的回调函数 */
type OnErrorCallback = (result: OnErrorCallbackResult) => void;
/** 录音结束事件的回调函数 */
type OnStopCallback = (result: OnStopCallbackResult) => void;
interface OnStopCallbackResult {
/** 录音总时长,单位:ms */
duration: number;
/** 录音文件大小,单位:Byte */
fileSize: number;
/** 录音文件的临时路径 */
tempFilePath: string;
}
interface StartOption {
/** 指定录音的音频输入源,可通过 [Taro.getAvailableAudioSources()](/docs/apis/media/audio/getAvailableAudioSources) 获取当前可用的音频源 */
audioSource?: keyof AudioSource;
/** 录音的时长,单位 ms,最大值 600000(10 分钟) */
duration?: number;
/** 编码码率,有效值见下表格 */
encodeBitRate?: number;
/** 音频格式 */
format?: keyof Format;
/** 指定帧大小,单位 KB。传入 frameSize 后,每录制指定帧大小的内容后,会回调录制的文件内容,不指定则不会回调。暂仅支持 mp3 格式。 */
frameSize?: number;
/** 录音通道数 */
numberOfChannels?: keyof NumberOfChannels;
/** 采样率 */
sampleRate?: keyof SampleRate;
}
/** 指定录音的音频输入源 */
interface AudioSource {
/** 自动设置,默认使用手机麦克风,插上耳麦后自动切换使用耳机麦克风,所有平台适用 */
'auto': any;
/** 手机麦克风,仅限 iOS */
'buildInMic': any;
/** 耳机麦克风,仅限 iOS */
'headsetMic': any;
/** 麦克风(没插耳麦时是手机麦克风,插耳麦时是耳机麦克风),仅限 Android */
'mic': any;
/** 同 mic,适用于录制音视频内容,仅限 Android */
'camcorder': any;
/** 同 mic,适用于实时沟通,仅限 Android */
'voice_communication': any;
/** 同 mic,适用于语音识别,仅限 Android */
'voice_recognition': any;
}
/** 音频格式 */
interface Format {
/** mp3 格式 */
mp3: any;
/** aac 格式 */
aac: any;
/** wav 格式 */
wav: any;
/** pcm 格式 */
PCM: any;
}
/** 录音通道数 */
interface NumberOfChannels {
/** 1 个通道 */
1: any;
/** 2 个通道 */
2: any;
}
/** 采样率 */
interface SampleRate {
/** 8000 采样率
* @codeRate 16000 ~ 48000
*/
8000: any;
/** 11025 采样率
* @codeRate 16000 ~ 48000
*/
11025: any;
/** 12000 采样率
* @codeRate 24000 ~ 64000
*/
12000: any;
/** 16000 采样率
* @codeRate 24000 ~ 96000
*/
16000: any;
/** 22050 采样率
* @codeRate 32000 ~ 128000
*/
22050: any;
/** 24000 采样率
* @codeRate 32000 ~ 128000
*/
24000: any;
/** 32000 采样率
* @codeRate 48000 ~ 192000
*/
32000: any;
/** 44100 采样率
* @codeRate 64000 ~ 320000
*/
44100: any;
/** 48000 采样率
* @codeRate 64000 ~ 320000
*/
48000: any;
}
export default function useRecorderManager(option: RecordManagerOption): (import('@tarojs/taro').RecorderManager | {
startRecorder: (options: StartOption) => void;
stopRecorder: () => void;
pauseRecorder: () => void;
})[];
export {};