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

问题描述 投票:0回答:1

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

并且它仍然无法正常工作,当我尝试将其设置为我做错什么时,它只是重放音频?

node.js express http-headers html5-audio
1个回答
0
投票

所以我找到了我需要的关于this的一些信息,所以我需要做的就是更改我从中发送的标头

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

至此

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

我这样做后就可以完美地设置当前时间,而不会出现问题:)

© www.soinside.com 2019 - 2024. All rights reserved.