如何分析节点服务器上URL的音频?

时间:2019-05-10 12:02:05

标签: node.js web-audio-api

我正在开发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读取音频而不是在本地读取文件?

0 个答案:

没有答案