0

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のいずれかを使用したいのですが、他のオプションを利用できます。

4

2 に答える 2

0

ここでの本当の問題は、「ファイルをリクエスト」しているため、GET リクエストの方が適しているということです。これを達成するために、私は明示的な「RESTful」構文「/item/listen/:name」を使用しました。これにより、前のポスターによって提供されたリンクで指定された方法で JPlayer を使用できるようになります。

于 2012-06-22T00:00:11.217 に答える
-1

彼らのサイトにわざわざアクセスしなかったとしたら、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>

于 2012-06-21T23:13:41.243 に答える