AMR 录音机
纯前端解码、播放、录音、编码 AMR 音频,无须服务器支持,基于 amr.js 和 RecorderJs。
注意:由于使用了 amr.js 做编码和解码,因此 js 文件(压缩后,未 gzip)接近 500 KB,使用前请考虑。
特性
- 方便的 API 实现解码、播放、录音、编码 AMR 文件。
- 支持 url 和 blob (即
<input type="file">
)方式获取 AMR。 - 支持将浏览器
<audio>
所支持的音频格式(例如 MP3 或 OGG 音频)转换成 AMR 音频。 - 编码后的 AMR 文件可下载,无须服务器。
Demo
安装
方法一:引入 js 文件
方法二:使用 npm
npm install benz-amr-recorder
var BenzAMRRecorder = ;
用法
播放 AMR:
var amr = ;amr;amr
播放本地文件:
var amr = ;var amrFileObj = document;amrFileObj { amr;}
录制 AMR:
var amrRec = ;amrRec;
下载 AMR:
windowlocationhref = windowURL;
把 MP3 转换成 AMR (需要浏览器原生支持 MP3):
var amrFromMp3 = ;amrFromMp3
API
初始化对象
/** * 是否已经初始化 * @return */amr;
/** * 使用浮点数据初始化 * @param * @return */amr;
/** * 使用 Blob 对象初始化( <input type="file">) * @param * @return */amr;
/** * 使用 url 初始化 * @param * @return */amr;
/** * 初始化录音 * @return */amr;
事件
注意:事件不会叠加,也就是说,新注册的事件将覆盖掉旧的事件。
/** * 播放 * @param */amr;
/** * 停止(包括播放结束) * @param */amr;
/** * 播放结束 * @param */amr;
/** * 开始录音 * @param */amr;
/** * 结束录音 * @param */amr;
播放控制
/** * 播放 */amr;
/** * 停止 */amr;
/** * 是否正在播放 * @return */amr;
录音控制
/** * 开始录音 */amr;
/** * 结束录音,并把录制的音频转换成 AMR * @return */amr;
/** * 放弃录音 */amr;
/** * 是否正在录音 * @return */amr;
其他
/** * 获取音频的时间长度(单位:秒) * @return */amr;
/** * 获取 AMR 文件的 Blob 对象(用于下载文件) * @return */amr;
尚未完成的特性
- 使用 Worker 编码解码 AMR。
- 暂停功能。
- 播放进度控制。
许可
MIT.