构建一个用于从GridFS mongodb流式传输音频/视频的API

时间:2013-08-13 10:29:50

标签: php mongodb gridfs

我已尝试过链接stream audio/video files from gridFS on the browser

中提供的解决方案

当我使用我的代码时,文件会被下载或者使用默认的浏览器播放器。 我的代码如下:

header('Content-type: audio/mpeg;');

$stream = $file->getResource();
while (!feof($stream)) {
      echo fread($stream, 8192);
      }

我实际上想要一个构建API的解决方案,以便我可以从mongodb GridFS中检索音频/视频,并从手机应用程序播放它。

迫切需要帮助。欢迎任何有关该主题的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了一种方法来制作一个API,用于直接从HTML音频视频图像小部件中的mongoDB GridFS播放文件。唯一的问题是它使用从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编码的音频,视频或图像数据,您只需回显html5小部件的'src'部分中的数据。

我从一个非常有用的博客中得到了这个解决方案。如果您需要更多帮助,请仔细阅读:

http://www.iandevlin.com/blog/2012/09/html5/html5-media-and-data-uri

非常欢迎任何针对此问题的增强解决方案。