Как мне проанализировать аудио из URL на узле сервера? - PullRequest
0 голосов
/ 10 мая 2019

Я занимаюсь разработкой html / JS-игры и хочу прочитать аудио из потоковой передачи в сети, например радиономию, на моем сервере (nodeJS) и проанализировать ее.

Процесс, который я хочу выполнить на сервере:

. Загрузка аудио из Интернета, например: http://streaming.radionomy.com/kiRyyy?lang=en%2cen-US%3bq%3d0.9%2cpt%3bq%3d0.8%2cpt-PT%3bq%3d0.7;

.Читать / анализировать аудио с использованием аудио контекста;

Я уже разработал клиентскую сторону, используя следующий код:



    audio = new Audio();  
    audio.src = "http://streaming.radionomy.com/kiRyyy?lang=en%2cen-US%3bq%3d0.9%2cpt%3bq%3d0.8%2cpt-PT%3bq%3d0.7";  
    context = new AudioContext();  
    analyser = context.createAnalyser();  
    source = context.createMediaElementSource(audio);  
    source.connect(analyser);  
    analyser.connect(context.destination);  
    fbc_array = new Uint8Array(analyser.frequencyBinCount);  
    ...  
    analyser.getByteFrequencyData(fbc_array);

И теперь я хочу точно такую ​​же вещь, но на моем сервере узлов.

Я уже пробовал web-audio-api npm, но читает только из локального файла mp3 иЯ хочу прочитать его с URL-адреса, например: http://streaming.radionomy.com/kiRyyy?lang=en%2cen-US%3bq%3d0.9%2cpt%3bq%3d0.8%2cpt-PT%3bq%3d0.7



    var fs = require('fs')  
              , AudioContext = require('web-audio-api').AudioContext  
              , context = new AudioContext  

          context.outStream = process.stdout  

    fs.readFile(__dirname + '/sounds/powerpad.wav', function(err, buffer) {  
        if (err) throw err  
        context.decodeAudioData(buffer, function(audioBuffer) {  
          var bufferNode = context.createBufferSource()  
          bufferNode.connect(context.destination)  
          bufferNode.buffer = audioBuffer  
          bufferNode.loop = true  
          bufferNode.start(0)  
        })  
      })  
    } 

Является ли web-audio-api npm лучшим способом?Если да, то как мне прочитать аудио с URL, а не читать файл локально?

...