我有一个应用程序,它使用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,但我可以使用其他选项。
答案 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>