html5 录制mp3音频支持采样率和比特率设置
程序员文章站
2021-12-07 10:10:07
html5 录制mp3音频支持采样率和比特率设置最初有个开源项目libmp3lame-js,直接将 lame 源码编译为 js版本,后来有人基于libmp3lame使用 js 进行了重写,就是如今的lamejs 项目。相比libmp3lame ,自身体积更小,而且能实现更... 21-07-12...
13年的时候做过html5录音,一个问题是保存的wav格式文件很大,当初用了一个迂回的方式,上传到服务器后调用 lame 编码器转换,但由于文件大,上传较慢。不得不说,前端技术发展真是日新月异,有人实现了js版本的lame编码器,可以直接在浏览器端录制mp3音频。
lamejs介绍
最初有个开源项目libmp3lame-js,直接将 lame 源码编译为 js版本,后来有人基于libmp3lame使用 js 进行了重写,就是如今的lamejs 项目。相比libmp3lame ,自身体积更小,而且能实现更快的编码速度。据介绍说,编码一个132秒长度的音频仅需6.5秒。
录制mp3音频
我对代码进行了梳理和封装,已发布到github,参见 mp3-recorder。对实现过程有兴趣或对使用lamejs有兴趣的,可以参考我的源码。支持firefox 及 webkit浏览器。
采用64kbps比特率,录制一分钟音频长度约为480kb。
调用示例
/* mp3的采样频率分为 48000 44100 32000 24000 22050 16000 12050 8000 比特率值与现实音频对照(仅供参考) 16kbps=电话音质 24kbps=增加电话音质、短波广播、长波广播、欧洲制式中波广播 40kbps=美国制式中波广播 56kbps=话音 64kbps=增加话音(手机铃声最佳比特率设定值、手机单声道mp3播放器最佳设定值) 112kbps=fm调频立体声广播 128kbps=磁带(手机立体声mp3播放器最佳设定值、低档mp3播放器最佳设定值) 160kbps=hifi高保真(中高档mp3播放器最佳设定值) 192kbps=cd(高档mp3播放器最佳设定值) 256kbps=studio音乐工作室(音乐发烧友适用) */ //唯一影响mp3文件大小的参数为 bitrate //samplerate 仅供特殊需求的人使用 var recorder = new mp3recorder({ //numchannels: 1, //声道数,默认为1 //samplerate: 8000, //采样率,一般由设备提供,比如 48000 bitrate: 64, //比特率,不要低于64,否则可能录制无声音(人声) //录音结束事件 complete: function (data, type) { //blob为mp3音频数据 var blob = new blob(data, { type: type }); } }); //开始录音 recorder.start(onsuccess, onerror); //停止录音 recorder.stop(); //暂停录音 recorder.pause(); //恢复录音 recorder.resume();
使用很简单,demo有详细代码,在此就不多说了。
代码下载
到此这篇关于html5 录制mp3音频支持采样率和比特率设置的文章就介绍到这了,更多相关html5 录制mp3音频内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!