使用Node.JS播放音频

e37o9pze  于 2023-06-22  发布在  Node.js
关注(0)|答案(9)|浏览(584)

我目前使用child_process和命令行mplayer在本地机器上播放音频,使用我的Node.JS应用程序。这是可行的,但它并不是一个很好的解决方案。我最大的问题是,从MPlayer启动到音频开始播放需要500ms。
是否有更好的方法来播放音频?最好是压缩音频,但我会尽我所能。

k5hmc34c

k5hmc34c1#

我会建议使用node-speaker,它将原始的PCM数据输出到你的扬声器(所以基本上,它播放音频)。
如果你播放的是MP3文件,你可能需要先将其解码为PCM数据,这正是node-lame所做的。
希望能帮上忙。

xzabzqsa

xzabzqsa2#

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

exec('afplay whatever.mp3', audioEndCallback)
yrdbyhpb

yrdbyhpb3#

介绍audic它不使用任何本机依赖项,所以它不会像上面的答案那样中断。
观察:

import Audic from 'audic';

const audic = new Audic('audio.mp3');

await audic.play();

audic.addEventListener('ended', () => {
    audic.destroy();
});

或者更简单地说:

import {playAudioFile} from 'audic';

await playAudioFile('audio.mp3');
vu8f3i0k

vu8f3i0k4#

我想你问的是,在nodejs生态系统中有没有什么好的模块可以处理音频?
每当你有这种类型的问题,你应该首先去npmjs,只是键入一个适当的关键字。
下面是我在npmjs站点上找到的与audio相关的模块列表。
substacks的baudio看起来不错。

c86crjj0

c86crjj05#

看看sound-play,这是一个简单的解决方案,适用于Windows和MacOS,无需使用外部播放器:

const sound = require('sound-play')
sound.play('music.mp3')

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

kiayqfof

kiayqfof6#

你也可以使用play-sound模块:
使用npm安装,运行命令:

npm install play-sound --save

现在在代码中使用:

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

 player.play('./music/somebody20.flac', function (err) {
   if (err) throw err;
   console.log("Audio finished");
 });
bis0qfac

bis0qfac7#

查看node-groove- Node.js绑定到libgroove:
此库提供播放列表中音频的解码和编码。它旨在用作音乐播放器应用程序的后端,但它足够通用,可以用作任何音频处理实用程序的后端。
免责声明:我写的库,它是免费的,开源的,不隶属于任何产品,服务或公司。

w1e3prcc

w1e3prcc8#

您可以使用播放声音模块和路径来实现这一点。

npm install play-sound

import path from 'path'; 
const __dirname = path.resolve();
import sound from 'sound-play';

const filePath = path.join(__dirname, "file.mp3");
sound.play(filePath);
uwopmtnx

uwopmtnx9#

这对我很有效

import * as path from 'path';
import * as sound from 'sound-play';

sound.play(path.join(path.resolve(), "notify.mp3"));

相关问题