将Javascript音频录制到MongoDB
如何在mongoDB中存储浏览器音频录制,以及如何检索它以将其插入html将Javascript音频录制到MongoDB,javascript,mongodb,audio,Javascript,Mongodb,Audio,如何在mongoDB中存储浏览器音频录制,以及如何检索它以将其插入html标记的src属性 我本想将此作为一个评论而不是回答,但StackOverflow说我的声誉不够高 首先,我不同意@GetOffMyLawn 如果需要,可以在mongodb中存储文件。Mongodb可以存储您需要的任何文件,问题是它将如何存储 我对音频不是很精通,但我可以告诉你我是如何完成视频数据的这个精确场景的,我会假设音频是相同或相似的 第1步是将所有音频/视频源转换为数据URI 代码如下所示: function get
标记的src
属性 我本想将此作为一个评论而不是回答,但StackOverflow说我的声誉不够高
首先,我不同意@GetOffMyLawn
如果需要,可以在mongodb中存储文件。Mongodb可以存储您需要的任何文件,问题是它将如何存储
我对音频不是很精通,但我可以告诉你我是如何完成视频数据的这个精确场景的,我会假设音频是相同或相似的
第1步是将所有音频/视频源转换为数据URI
代码如下所示:
function getEncodedVideoString($type, $file) {
return 'data:video/' . $type . ';base64,' .
base64_encode(file_get_contents($file));
}
我从()
具体实现取决于视频从何处加载。它是否来自客户端,是否来自您的服务器,是否从外部源加载?等
但总的原则是一样的。获取对原始字节数据的访问权,然后将其转换为base64字符串
接下来,一旦获得了数据uri,就可以将其作为文本字符串存储在mongodb中。但是,请记住,当它被编码为base64时,文件大小将增大约30%,因为您将字节数据编码为纯文本
如果您愿意,您也可以在mongodb中存储原始字节数据,但是我过去没有这样做过,所以我不能确切地说明它是如何工作的
最后,当您需要提取音频样本时,只需在数据库中查询刚刚插入的数据uri,并将其发送给客户端,然后客户端代码只需将数据uri作为字符串,并将其附加到音频元素上
它看起来像:
var audio = document.getElementById('audio_element');
audio.src = data_uri_string;
您需要将音频保存到文件系统或云文件系统,然后在mongodbwhat-king文件系统中保存音频的URL,例如@GetOffMyLawn提到的。您可以将音频文件保存在本地服务器的文件系统中,也可以使用Dropbox、OneDrive或Google Drive等任何云文件系统使用其API上传该文件。然后将链接复制到音频文件并将其保存在mongoDB中。但是,在浏览器和mongo之间仍然需要一个API来存储和检索文件。@getOffMyLawn为什么会使事情过于复杂?Patrick是对的,这可以直接存储到mongodb中