如何在 Node.js 中将 PCM 音频流式传输到 Mac 和 Linux 上的扬声器?

问题描述 投票:0回答:1

背景:

我正在 Node.js 上为 Rapsberry PI OS Lite(Debian,无 GUI)上的 RPI 开发音频应用程序,我需要在 Node.js 环境中从 https 播放 mp3 文件的方式,并且能够暂停/恢复回放。我需要它在 Mac M1(开发/调试)和 RPI 上工作。

令我惊讶的是,我没有找到任何适用于 mac/linux 的音频播放器可以开箱即用地解决这个问题(花了几个小时搜索并尝试不同的选项)。

可能的解决方案

我正在尝试用以下方法实现播放:mp3 -> PCM Stream ->扬声器,看起来比较简单,像这样:

import https from "https";
import prism from "prism-media";
import Speaker from "speaker";

decoder = new prism.FFmpeg({...});
speaker = new Speaker({...});

play(url) {
  this.stream = https.get(url, (response) => {
    response.pipe(this.decoder).pipe(this.speaker);
  });
}

pause() {
  this.decoder.unpipe(this.speaker);
}


resume() {
  this.decoder.pipe(this.speaker);
}

问题

speaker 软件包无法在安装 Node v21.7 的 Mac M1 上安装

然后我找到了arm64支持这个叉子,它也无法安装:

...
npm ERR! ../deps/mpg123/src/mpg123app.h:14:10: fatal error: 'config.h' file not found
...

然后我发现音频扬声器包看起来很有希望,但它在初始化时也失败了用这个

我不会放弃,但我担心我自己已经没有其他选择了。 如果有任何反馈,我将不胜感激。

node.js audio raspberry-pi apple-m1 audio-streaming
1个回答
0
投票

你看过 mpd 的源码吗?它似乎正在做你想做的事。至少我在 iOS (Rigelian) 上的客户端软件可以做到这一点。据我所知,Mac OS 上也有一个应用程序,尽管我的设置是在客厅中连接到我的立体声音响。

© www.soinside.com 2019 - 2024. All rights reserved.