将getUserMedia()中的音频编码为JavaScript中的.OGG

时间:2013-05-29 19:05:01

标签: javascript json html5 speex getusermedia

所以我正在研究这个HTML5项目,我正在将iOS应用程序转换为基于Web的应用程序。伴随应用程序内容创建的一部分是录音,我试图在JavaScript中复制而不使用插件;到目前为止,我已经能够从getUserMedia()录制音频,并通过Recorder.js将其转换为WAV。

然而,现在,我有点迷失了。我目前有两个单独的视图,一个用于录制内容,另一个用于播放,但我不知道如何将音频导出的Recorder.js导入我的JSON有效负载进行播放(我想避免强制服务器)上传或客户端下载)。

所以我想我的具体问题是,我如何获取由Recorder.js制作的blob对象(我几乎一无所知)并将其转换为原始数据,或以某种方式通过JSON发送文件?

更新:我决定尝试使用speex.js工具(https://github.com/jpemartins/speex.js)来编码.OGG(远小于.WAV)。但是,我不确定如何使用它;演示页似乎对我不起作用,并且尝试调用Speex对象的.encode()函数似乎实际上并不对数据进行编码,我只在对象字段中得到零。有谁知道我可以学习如何使用这种工具的任何资源?

1 个答案:

答案 0 :(得分:0)

有一个库(MIT许可)应该可以工作,我相信我已经看到这个确切的库用于不久前在网站上的getUserMedia音频流中保存ogg文件。我隐约记得图书馆的名字,但我认为这就是:

https://github.com/streamproc/MediaStreamRecorder/blob/master/AudioStreamRecorder/MediaRecorder.js

GitHub上的整个项目: https://github.com/streamproc/MediaStreamRecorder/

由于实现这一点似乎很难,所以至少值得一看理解这些概念 - 但我会说这是我们在这里处理的相当高级的JavaScript ...