# MRecorder **Repository Path**: null_639_5368/MRecorder ## Basic Information - **Project Name**: MRecorder - **Description**: 基于Recoder二次封装的工具类,H5转换音频格式,录音 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-18 - **Last Updated**: 2022-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MRecorder 工具类 > 基于[Recoder](https://github.com/xiangyuecn/Recorder)二次封装的工具类 [![npm](https://img.shields.io/npm/v/@maybecode/m-recorder.svg)](https://www.npmjs.com/package/@maybecode/m-recorder) [![npm](https://img.shields.io/npm/dt/@maybecode/m-recorder.svg)](https://www.npmjs.com/package/@maybecode/m-recorder) [码云](https://gitee.com/null_639_5368/MRecorder) ## 安装 ``` npm install @maybecode/m-recorder ``` ## 在线demo [Demo](https://null_639_5368.gitee.io/mrecorder) ## 示例代码 ``` import MRecorder from '@maybecode/m-recorder' MRecorder.amrTo(source,{type:'wav'}).then(res=>{ console.log(res); // { blob, duration, rec} audio.src= MRecorder.getAudioSrcByBlob(blob); // 转换成URL audio.play(); // 开始播放 }); ``` ## 目前实现的功能 ``` interface ToConfig { type: "wav" | "mp3" | "amr", // 转换类型 sampleRate?: number, // 采样频率 bitRate?: number // 码率 } ``` ``` /** * amr音频转换 * @param source {string | Blob} http链接或者blob二进制流 * @param config {ToConfig} 默认值:{ type: "wav",sampleRate: 16000,bitRate: 16,} */ static amrTo(source: string | Blob, config?: ToConfig): Promise; /** * mp3音频转换 * @param source {string | Blob} http链接或者blob二进制流 * @param config {ToConfig} 默认值:{ type: "wav",sampleRate: 16000,bitRate: 16,} */ static mp3To(source: string | Blob, config?: ToConfig): Promise; /** * wav音频转换 * @param source {string | Blob} http链接或者blob二进制流 * @param config {ToConfig} 默认值:{ type: "mp3",sampleRate: 16000,bitRate: 16,} */ static wavTo(source: string | Blob, config?: ToConfig): Promise; /** * 获取二进制流通过url * @param url */ static getBlobByUrl(url: string): Promise; /** * 开始录音 * @param config 默认值:{ type: "wav",sampleRate: 32000,bitRate: 96,} * @param callback callback.success(){} 成功调用回调 callback.denied(msg, isUserNotAllow){} 用户拒绝未授权或不支持 */ static startRecord(config: RecordConfig, callback?: CallBack): void; /** * 结束录音 * @param callback callback.success(){} 成功调用回调 callback.error(msg){} 调用失败回调 */ static stopRecord(callback?: CallBack): void; /** * 获取音频的src通过blob * @param blob */ static getAudioSrcByBlob(blob: Blob): string; ```