[我正试图制作一个简单的音乐播放器只是为了好玩,我正在从express发送图像缓冲区并像这样加载它
song = new Audio('/song/'+ songId);
它加载得很好,我可以停止播放并进行所有操作,但是无法设置其currentTime
。我在阅读另一个SO问题,有人说他们的问题是服务器配置不正确。它没有发送Content-Duration
标头。所以我试图这样做,只是为了测试
app.get("/song/:songId", function(req, res) {
var songId = req.param('songId');
songData.findOne({songId:songId}, function (err, doc) {
if(err || doc == null){
res.status(404) // HTTP status 404: NotFound
.send('Not found')
}else{
var song = new Buffer(doc.base64, 'base64');
mp3Duration(song, function (err, duration) {
if (err) return console.log(err.message);
console.log(duration)
res.header({
'Content-Type': 'audio/mp3',
'Content-Length': song.length,
'X-Content-Duration': '00:00:03:473'
});
res.end(song);
})
}
});
});
并且它仍然无法正常工作,当我尝试将其设置为我做错什么时,它只是重放音频?
所以我找到了我需要的关于this的一些信息,所以我需要做的就是更改我从中发送的标头
'X-Content-Duration': '00:00:03:473'
至此
'Accept-Ranges': 'bytes', 'Content-Length': song.length
我这样做后就可以完美地设置当前时间,而不会出现问题:)