【问题标题】:Stream IncomingMessage audio data as it's coming in?在传入时流式传输 IncomingMessage 音频数据?
【发布时间】:2021-12-10 13:29:09
【问题描述】:

我正在尝试使用speaker 模块从网络请求流式传输音频,将缓冲区形式的无休止的音频数据流返回到我的扬声器。 所以我尝试使用res.on('data', . . .) 事件来处理这些块,但我似乎不知道该怎么做。

我已经想到了一些类似的东西:

const https = require('https');
const Speaker = require('speaker');

var speaker = new Speaker({
    channels: 2,
    bitDepth: 16,
    sampleRate: 44100
});

https.get('<url>', (res) => {
    res.on('data', chunk => {
        /* Somehow convert the Buffer to PCM audio data and 
         * give it to the speaker
         */
    });
});

我已经在谷歌上搜索并尝试了 2 天,想现在就在这里问。

【问题讨论】:

    标签: javascript node.js playback audio-player


    【解决方案1】:

    您在回调中获得的 res 对象是一个流,而您创建的扬声器实例是一个可写流 (from docs) ,因此您可以简单地将它们连接在一起。像这样的东西:

    // Not tested code.
    const https = require('https');
    const Speaker = require('speaker');
    
    let speaker = new Speaker({
        channels: 2,
        bitDepth: 16,
        sampleRate: 44100
    });
    
    https.get('<url>', (res) => {
        res.pipe(speaker);
    });
    

    【讨论】:

      猜你喜欢
      • 2012-04-03
      • 1970-01-01
      • 2016-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      相关资源
      最近更新 更多