设置audio.currentTIme;从快递服务器发送的歌曲缓冲区

时间:2019-12-09 08:45:36

标签: node.js express http-headers html5-audio

我正试图制作一个简单的音乐播放器,只是为了好玩,我正在从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);
        })
      }
    }); 
  });

它仍然不起作用,当我尝试将其设置为我做错了什么时,它只是播放音频?

1 个答案:

答案 0 :(得分:0)

所以我在this上找到了一些我需要的信息,所以我需要做的就是更改从此发送的标题

'X-Content-Duration': '00:00:03:473'

对此

'Accept-Ranges': 'bytes', 'Content-Length': song.length

一旦我做到了,我就可以完美地设置当前时间了,没有问题:)