Я пробовал решение, указанное в потоковых аудио / видео файлах линии связи из gridFS в браузере
Тем не менее, когда я использую свой код, файл загружается или воспроизводится с помощью браузера по умолчанию. Мой код:
header('Content-type: audio/mpeg;'); $stream = $file->getResource(); while (!feof($stream)) { echo fread($stream, 8192); }
Я действительно хочу решение для создания API, чтобы я мог получать аудио / видео из mondodb GridFS и воспроизводить его потоковое из приложения для телефона.
Помощь срочно необходима. Любая помощь по этой теме будет приветствоваться.
Я нашел способ сделать API для воспроизведения файла прямо из mongoDB GridFS в виде виджета аудио-видео HTML. Единственная проблема заключается в том, что он использует данные, полученные из mongoDB в качестве данных base64. Теперь проблема, о которой я говорю, обсуждается в этой ссылке:
http://davidbcalhoun.com/2011/when-to-base64-encode-images-and-when-not-to .
Надеюсь, вы найдете это полезным, прежде чем решите использовать решение, которое я использую. Мое решение таково:
$stream = $file->getResource(); $stringcoded = stream_get_contents($stream); //converts the stream to string data $encoded = base64_encode($stringcoded); //encodes string data to base64
Теперь, когда у вас есть данные аудио, видео или изображения, закодированные в base64, вам просто нужно эхо-данные в части «src» виджета html5.
Я получил это решение из очень полезного блога. Если вам нужна дополнительная помощь, пройдите через него:
http://www.iandevlin.com/blog/2012/09/html5/html5-media-and-data-uri
Любые расширенные решения этой проблемы более чем приветствуются.