Я занимаюсь разработкой 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, а не читать файл локально?