Аудиозапись JavaScript в MongoDB - PullRequest
0 голосов
/ 04 июля 2018

как сохранить аудиозапись браузера в mongoDB и как извлечь ее, чтобы вставить в атрибут src тега html <audio src=" ">.

1 Ответ

0 голосов
/ 04 июля 2018

Я бы хотел сделать это комментарием, а не ответом, но StackOverflow говорит, что моя репутация недостаточно высока.

Во-первых, я не согласен с @GetOffMyLawn

Если вы хотите, вы можете хранить файлы в mongodb. Mongodb может хранить любой файл, который вам нужен, вопрос только в том, как он будет храниться?

Я не очень разбираюсь в аудио, но я могу рассказать вам, как я выполнил этот точный сценарий для видеоданных, и я предположил бы, что он будет таким же или похожим для аудио.

Шаг 1 - преобразовать любой аудио / видео источник в URI данных.

Код выглядит примерно так:

function getEncodedVideoString($type, $file) {
   return 'data:video/' . $type . ';base64,' . 
   base64_encode(file_get_contents($file));
}

Я скопировал это из (http://www.iandevlin.com/blog/2012/09/html5/html5-media-and-data-uri/)

)

Точная реализация зависит от того, откуда загружается видео. Это идет от клиента, это идет от вашего сервера, это загружается из внешнего источника? и т.п. Но общий принцип тот же. Получите доступ к необработанным байтовым данным, а затем преобразуйте их в строку base64.

Далее, когда у вас есть данные URI, вы можете просто сохранить их в mongodb в виде текстовой строки. Имейте в виду, однако, что при кодировании в base64 размер файла будет примерно на 30% больше, поскольку вы кодируете байтовые данные в виде простого текста.

Если хотите, вы также можете хранить необработанные байтовые данные в mongodb, однако я не делал этого раньше, поэтому не могу точно сказать, как это работает.

Наконец, когда вам нужно извлечь аудиосэмпл, вы просто запрашиваете в базе данных те URI, которые вы только что вставили, и отправляете их своему клиенту, а затем ваш клиентский код просто должен принять URI данных в виде строки, и добавьте его к аудиоэлементу.

Это будет выглядеть примерно так:

var audio = document.getElementById('audio_element');
audio.src = data_uri_string;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...