使用Node.JS播放音频

Zna*_*kus 23 audio node.js

我正在使用child_process和命令行在mplayer我的Node.JS应用程序上在本地机器上播放音频.这有效,但它并不是一个很好的解决方案.我最大的问题是从mplayer开始到音频开始播放需要500毫秒.

有没有更好的播放音频的方法?最好是压缩音频,但我会采取我能得到的.

ped*_*res 30

我建议使用节点扬声器,它将原始PCM数据输出到您的扬声器(基本上,它播放音频).

如果您正在播放类似mp3文件的内容,则可能需要先将其解码为PCM数据,这正是node-lame所做的.

希望有所帮助.

  • 你找到了不需要python的东西吗? (2认同)

leh*_*ang 9

查看sound-play,这是一个简单的解决方案,无需使用外部播放器即可在 Windows 和 MacOS 上运行:

const sound = require('sound-play')
sound.play('music.mp3')
Run Code Online (Sandbox Code Playgroud)

免责声明:我是这个包的作者。


Shu*_*rma 7

您也可以使用play-sound模块:

使用 npm 安装,运行命令:

npm install play-sound --save
Run Code Online (Sandbox Code Playgroud)

现在在您的代码中使用:

var player = require('play-sound')(opts = {})

 player.play('./music/somebody20.flac', function (err) {
   if (err) throw err;
   console.log("Audio finished");
 });
Run Code Online (Sandbox Code Playgroud)

  • 该模块只执行一个命令(例如 mplayer),就像 OP 已经在做的那样 (3认同)

Ric*_*all 7

介绍,audic。它不使用任何本机依赖项并且它是同构的,因此它不会像更高级别的答案那样中断。

观察:

const Audic = require("audic")

const audio = new Audic("audio.mp3")

// Play Audio
audio.play()

// Pause Audio
audio.pause()
Run Code Online (Sandbox Code Playgroud)

  • @liaguridio Audic 依赖 VLC 来工作。它仅针对 Windows 和 macOS 自动下载,因为 Linux 发行版有很多。 (3认同)

lip*_*mar 6

最简单的我发现(在Mac OS上)是使用

exec('afplay whatever.mp3', audioEndCallback)
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记 `const { exec } = require('child_process');` (3认同)
  • OS X 上还有 [`open`](https://developer.apple.com/library/mac/documentation/Darwin/Reference/Manpages/man1/open.1.html) 命令。 (2认同)

and*_*wrk 6

检查node-groove - Node.js绑定到libgroove:

该库提供播放列表上的音频解码和编码.它旨在用作音乐播放器应用程序的后端,但它足够通用,可用作任何音频处理实用程序的后端.

免责声明:我编写的图书馆是免费的,开源的,不隶属于任何产品,服务或公司.

  • 谢谢你的建议.我真的很喜欢libgroove.但是,您可能想提到您编写它. (3认同)
  • 为什么那么相关?答案的质量不受模块作者的影响. (3认同)

sae*_*eed 5

我想你问的是有什么好的模块可以在nodejs生态系统中使用音频吗?

每当你有这种类型的问题时,你应该首先去npmjs,然后输入一个适当的关键字.

以下是我在npmjs网站上找到的与音频相关的模块列表.

substacks的baudio对我来说很好看.

  • baudio 绝对*不是*您想要播放音频文件 (3认同)