使用Node.JS使用Stream创建

时间:2012-06-21 23:06:13

标签: node.js express

我有一个应用程序,它使用Node.JS流式传输MP3。目前,这是通过以下邮政路线完成的......

app.post('/item/listen',routes.streamFile)
...
exports.streamFile = function(req, res){
  console.log("The name is "+ req.param('name'))
  playlistProvider.streamFile(res, req.param('name'))
}
...
PlaylistProvider.prototype.streamFile = function(res, filename){
  res.contentType("audio/mpeg3");
  var readstream = gfs.createReadStream(filename, {
      "content_type": "audio/mpeg3",
      "metadata":{
        "author": "Jackie"
       },
       "chunk_size": 1024*4 });
  console.log("!")
  readstream.pipe(res);
}

是否有人可以帮助我在客户端阅读此内容?我想使用JPlayer或HTML5,但我可以使用其他选项。

2 个答案:

答案 0 :(得分:0)

所以这里真正的问题是,我们“请求一个文件”,所以这会更好地作为GET请求。为了实现这一点,我使用了明确的“RESTful”语法'/ item / listen /:name'。然后,这允许您按照上一张海报提供的链接中指定的方式使用JPlayer。

答案 1 :(得分:-1)

我假设您不打扰访问their site,因为如果您这样做了,您会看到几个如何使用HTML5 / JPlayer实现此目的的示例。以下是其在线开发人员文档提供的一个简单示例:

<html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script> <script type="text/javascript" src="/js/jquery.jplayer.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#jquery_jplayer_1").jPlayer({ ready: function() { $(this).jPlayer("setMedia", { mp3: "http://www.jplayer.org/audio/mp3/Miaow-snip-Stirring-of-a-fool.mp3" }).jPlayer("play"); var click = document.ontouchstart === undefined ? 'click' : 'touchstart'; var kickoff = function () { $("#jquery_jplayer_1").jPlayer("play"); document.documentElement.removeEventListener(click, kickoff, true); }; document.documentElement.addEventListener(click, kickoff, true); }, loop: true, swfPath: "/js" }); }); </script> </head> <body> <div id="jquery_jplayer_1"></div> </body> </html>