html arm音频播放器,web页面播放arm格式音频

web页面播放.arm格式音频,arm-js语音插件

AMR 录音机

(README in English)

纯前端解码、播放、录音、编码 AMR 音频,无须服务器支持,基于 amr.js 和 RecorderJs。

注意:由于使用了 amr.js 做编码和解码,因此 js 文件(压缩后,未 gzip)接近 500 KB,使用前请考虑。

特性

方便的 API 实现解码、播放、录音、编码 AMR 文件。

支持 url 和 blob (即)方式获取 AMR。

支持将浏览器  所支持的音频格式(例如 MP3 或 OGG 音频)转换成 AMR 音频。

编码后的 AMR 文件可下载,无须服务器。

安装

方法一:引入 js 文件

方法二:使用 npm

npm install benz-amr-recorder

var BenzAMRRecorder = require('benz-amr-recorder');

用法

播放 AMR:

注意事项:跨域问题!!!!

var amr = new BenzAMRRecorder();

amr.initWithUrl('path/to/voice.amr').then(function() {

amr.play();

});

amr.onEnded(function() {

alert('播放完毕');

})

播放本地文件:

var amr = new BenzAMRRecorder();

var amrFileObj = document.getElementById('amr-file');

amrFileObj.onchange = function() {

amr.initWithBlob(this.files[0]).then(function() {

amr.play();

});

}

录制 AMR:

var amrRec = new BenzAMRRecorder();

amrRec.initWithRecord().then(function() {

amrRec.startRecord();

});

下载 AMR:

window.location.href = window.URL.createObjectURL(amr.getBlob());

把 MP3 转换成 AMR (需要浏览器原生支持 MP3):

var amrFromMp3 = new BenzAMRRecorder();

amrFromMp3.initWithUrl('path/to/file.mp3').then(function() {

// 下载 amr 文件

window.location.href = window.URL.createObjectURL(amrFromMp3.getBlob());

})

API

初始化对象

/**

* 是否已经初始化

* @return {boolean}

*/

amr.isInit();

/**

* 使用浮点数据初始化

* @param {Float32Array} array

* @return {Promise}

*/

amr.initWithArrayBuffer(array);

/**

* 使用 Blob 对象初始化( )

* @param {Blob} blob

* @return {Promise}

*/

amr.initWithBlob(blob);

/**

* 使用 url 初始化

* @param {string} url

* @return {Promise}

*/

amr.initWithUrl(url);

/**

* 初始化录音

* @return {Promise}

*/

amr.initWithRecord();

事件

注意:事件不会叠加,也就是说,新注册的事件将覆盖掉旧的事件。

/**

* 播放

* @param {Function} fn

*/

amr.onPlay(function() {

console.log('开始播放');

});

/**

* 停止(包括播放结束)

* @param {Function} fn

*/

amr.onStop(function() {

console.log('停止播放');

});

/**

* 播放结束

* @param {Function} fn

*/

amr.onEnded(function() {

console.log('播放结束');

});

/**

* 开始录音

* @param {Function} fn

*/

amr.onStartRecord(function() {

console.log('开始录音');

});

/**

* 结束录音

* @param {Function} fn

*/

amr.onFinishRecord(function() {

console.log('结束录音');

});

播放控制

/**

* 播放

*/

amr.play();

/**

* 停止

*/

amr.stop();

/**

* 是否正在播放

* @return {boolean}

*/

amr.isPlaying();

录音控制

/**

* 开始录音

*/

amr.startRecord();

/**

* 结束录音,并把录制的音频转换成 AMR

* @return {Promise}

*/

amr.finishRecord();

/**

* 放弃录音

*/

amr.cancelRecord();

/**

* 是否正在录音

* @return {boolean}

*/

amr.isRecording();

其他

/**

* 获取音频的时间长度(单位:秒)

* @return {Number}

*/

amr.getDuration();

/**

* 获取 AMR 文件的 Blob 对象(用于下载文件)

* @return {Blob}

*/

amr.getBlob();

尚未完成的特性

使用 Worker 编码解码 AMR。

暂停功能。

播放进度控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值