背景:
我正在 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 上安装。
...
npm ERR! ../deps/mpg123/src/mpg123app.h:14:10: fatal error: 'config.h' file not found
...
然后我发现音频扬声器包看起来很有希望,但它在初始化时也失败了用这个。
我不会放弃,但我担心我自己已经没有其他选择了。 如果有任何反馈,我将不胜感激。
你看过 mpd 的源码吗?它似乎正在做你想做的事。至少我在 iOS (Rigelian) 上的客户端软件可以做到这一点。据我所知,Mac OS 上也有一个应用程序,尽管我的设置是在客厅中连接到我的立体声音响。