【发布时间】:2013-05-25 04:29:55
【问题描述】:
所以我正在处理这个 HTML5 项目,我正在将 iOS 应用程序转换为基于 Web 的应用程序。伴随应用程序内容创建的一部分是录音,我试图在不使用插件的情况下在 JavaScript 中复制它;到目前为止,我已经能够从 getUserMedia() 录制音频,并将其转换为 WAV,这要归功于 Recorder.js。
不过,现在我有点迷茫了。我目前有两个单独的视图,一个用于录制内容,一个用于回放,但我不知道如何将从 Recorder.js 导出的音频导入到我的 JSON 有效负载中进行播放(我想避免强制使用服务器上传或客户端下载)。
所以我想我的具体问题是,我如何获取 Recorder.js 制作的 blob 对象(我几乎一无所知)并将其转换为原始数据,或者以某种方式通过 JSON 发送文件?
更新:我决定尝试使用 speex.js 工具 (https://github.com/jpemartins/speex.js) 来编码 .OGG(比 .WAV 小得多)。但是,我不确定如何使用它。演示页面似乎对我不起作用,并且尝试调用 Speex 对象的 .encode() 函数似乎实际上并未对数据进行编码,我只在对象字段中得到零。有谁知道我可以学习如何使用此类工具的任何资源?
【问题讨论】:
-
我目前也在尝试用 getUsetMedia 设置一些东西,我尝试了几个教程,但有时我仍然觉得它很有挑战性。用于播放的 JSON 有效负载是什么意思?你有一个
<audio>标签,你想播放录制的音频吗?如果是这样,我认为您不需要recorder.js,您应该能够“以某种方式”将流传递给<audio>标签。原始数据是什么意思? -
如果您想将 Blob 转换为文本,您可以查看 FileReader 对象。此方法将 Blob 作为参数并将其“转换”为我认为的文本。但我不确定如何准确地使用它,或者它是否能做到我认为的那样。还没来得及仔细看。
-
谢谢,我只是在看 FileReader。我所说的“原始数据”是指录音机导出的.WAV文件中包含的实际数据;因为这最终应该能够在 iPad 和浏览器之间发送,所以能够发送 .WAV 文件将是非常有益的。我遇到的问题是我不知道如何发送 .WAV 文件的实际数据,因为我只有一个具有类型和长度的 blob 对象,没有明显的数据。
-
作为更新:我已经在 blob/blob 的 URL 上尝试了所有四个 FileReader 函数,它们似乎都返回“未定义”。我是整个文件/媒体 API 的新手,所以我很可能连接错误。
-
仍有数据附加到 blob 对象,即使您在 javascript 中看不到它。 Blob 包含二进制数据,例如,您可以通过 Web 套接字发送(这就是我正在做的,但我将其发送回服务器......所以我不知道 Web 套接字是否适合在iPad和浏览器)
标签: javascript json html speex getusermedia