Запрос mp3 для пользователя для загрузки в Node - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь настроить наш файл подкаста. js, чтобы мы могли динамически вставить объявление или промо перед тем, как подкаст будет доставлен конечному пользователю.

Я надеялся сделать следующее, однако я заметил, что я не могу сохранить mp3, так как он «потоковый».

Просто интересно, есть ли лучший способ сделать это?

const express = require('express');
var icecast = require('icecast-stack'),
request = require('request');


const router = new express.Router();

router.get('/', (req, res) => {
    res.set({
        "Content-Type": "audio/mpeg",
        'Transfer-Encoding': 'chunked'
    });
    var clients = [];
    var remote = "https://storage.googleapis.com/ad-system/testfolder/OUTOFAREA.mp3";  
    var streama = request.get(remote);
    streama.on("connect", function() {
        console.error("Podcast Stream connected!");
        //console.error(stream.headers);
      });

      streama.on("end", function() {
        console.error("Podcast Stream END");
      // setTimeout(function(){ test = true; console.error('yep yep yep')},29000);
        //console.error(stream.headers);
       // test = true;
      });

      // Fired after the HTTP response headers have been received.
      streama.on('response', function(res) {
       // console.error("AdStichr Stream response!");
        console.error(res.headers);
      });


      // When a chunk of data is received on the stream, push it to all connected clients
      streama.on("data", function (chunk) {
             // console.log(clients.length);
              if (clients.length > 0){
                  for (client in clients){
                      clients[client].write(chunk);
                  };
              }

      });

      clients.push(res);
});
module.exports = router;
...