Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Javascript音频录制到MongoDB_Javascript_Mongodb_Audio - Fatal编程技术网

将Javascript音频录制到MongoDB

将Javascript音频录制到MongoDB,javascript,mongodb,audio,Javascript,Mongodb,Audio,如何在mongoDB中存储浏览器音频录制,以及如何检索它以将其插入html标记的src属性 我本想将此作为一个评论而不是回答,但StackOverflow说我的声誉不够高 首先,我不同意@GetOffMyLawn 如果需要,可以在mongodb中存储文件。Mongodb可以存储您需要的任何文件,问题是它将如何存储 我对音频不是很精通,但我可以告诉你我是如何完成视频数据的这个精确场景的,我会假设音频是相同或相似的 第1步是将所有音频/视频源转换为数据URI 代码如下所示: function get

如何在mongoDB中存储浏览器音频录制,以及如何检索它以将其插入html
标记的
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中