Skip to content

Commit

Permalink
修改几处链接
Browse files Browse the repository at this point in the history
  • Loading branch information
xiangyuecn committed Dec 18, 2018
1 parent 961ae67 commit 340fe87
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ mp3默认16kbps的比特率,2kb每秒的录音大小,音质还可以(如

mp3使用lamejs编码,压缩后的recorder.mp3.min.js文件150kb左右(开启gzip后54kb)。如果对录音文件大小没有特别要求,可以仅仅使用录音核心+wav编码器,源码不足300行,压缩后的recorder.wav.min.js不足4kb。

[浏览器兼容性](https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats)mp3最好,wav还行,其他要么不支持播放,要么不支持编码。
[浏览器兼容性](https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats#Browser_compatibility)mp3最好,wav还行,其他要么不支持播放,要么不支持编码。

# 已知问题
*2018-07-22* [mozilla](https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia)[caniuse](https://caniuse.com/#search=getUserMedia) 注明的IOS 11以上Safari是支持调用getUserMedia的,但有用户反馈苹果手机IOS11 Safari和微信都不能录音,演示页面内两个关键指标:获取getUserMedia都是返回false(没有苹果手机未能复现)。但经测试桌面版Safari能获取到getUserMedia。原因不明。
Expand Down Expand Up @@ -35,8 +35,8 @@ rec.open(function(){//打开麦克风授权获得相关资源
rec.start();//开始录音

setTimeout(function(){
rec.stop(function(blob){//到达指定条件停止录音,拿到blob对象想干嘛就干嘛:立即播放、上传
console.log(URL.createObjectURL(blob));
rec.stop(function(blob,duration){//到达指定条件停止录音,拿到blob对象想干嘛就干嘛:立即播放、上传
console.log(URL.createObjectURL(blob),"时长:"+duration+"ms");
rec.close();//释放录音资源
},function(msg){
console.log("录音失败:"+msg);
Expand Down Expand Up @@ -91,7 +91,7 @@ set={
### rec.stop(success,fail)
结束录音并返回录音数据`blob对象`,拿到blob对象就可以为所欲为了,不限于立即播放、上传

`success(blob,duration)``blob`:录音数据audio/mp3|wav格式`duration`:录音时长,单位毫秒
`success(blob,duration)``blob`:录音数据audio/mp3|wav...格式`duration`:录音时长,单位毫秒

`fail(errMsg)`:录音出错回调

Expand Down Expand Up @@ -129,7 +129,7 @@ wav格式编码器时参考网上资料写的,会发现代码和别人家的
采用的是[lamejs](https://github.com/zhuker/lamejs)这个库的代码,`https://github.com/zhuker/lamejs/blob/bfb7f6c6d7877e0fe1ad9e72697a871676119a0e/lame.all.js`这个版本的文件代码;已对lamejs源码进行了部分改动,用于修复发现的问题。源码518kb大小,压缩后150kb左右,开启gzip后50来k。

## beta-ogg
采用的是[ogg-vorbis-encoder-js](https://github.com/higuma/ogg-vorbis-encoder-js)`https://github.com/higuma/ogg-vorbis-encoder-js/blob/7a872423f416e330e925f5266d2eb66cff63c1b6/lib/OggVorbisEncoder.js`这个版本的文件代码。此编码器源码2.2M,超级大,压缩后1.6M,开启gzip后327K左右。对录音的压缩率比lamejs高出一倍, 但Vorbis in Ogg好像Safari不支持([真的假的](https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats))。
采用的是[ogg-vorbis-encoder-js](https://github.com/higuma/ogg-vorbis-encoder-js)`https://github.com/higuma/ogg-vorbis-encoder-js/blob/7a872423f416e330e925f5266d2eb66cff63c1b6/lib/OggVorbisEncoder.js`这个版本的文件代码。此编码器源码2.2M,超级大,压缩后1.6M,开启gzip后327K左右。对录音的压缩率比lamejs高出一倍, 但Vorbis in Ogg好像Safari不支持([真的假的](https://developer.mozilla.org/en-US/docs/Web/HTML/Supported_media_formats#Browser_compatibility))。

## beta-webm
这个编码器时通过查阅MDN编写的一个玩意,没多大使用价值:录几秒就至少要几秒来编码。。。原因是:未找到对已有pcm数据进行快速编码的方法。数据导入到MediaRecorder,音频有几秒就要等几秒,类似边播放边收听形。(想接原始录音Stream?我不可能给的!)输出音频虽然可以通过比特率来控制文件大小,但音频文件中的比特率并非设定比特率,采样率由于是我们自己采样的,到这个编码器随他怎么搞。只有比较新的浏览器支持(需实现浏览器MediaRecorder),压缩率和mp3差不多。源码2kb大小。
Expand Down

0 comments on commit 340fe87

Please sign in to comment.