我已尝试过链接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中检索音频/视频,并从手机应用程序播放它。
迫切需要帮助。欢迎任何有关该主题的帮助。
答案 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
非常欢迎任何针对此问题的增强解决方案。