首页 > 解决方案 > 如何在我的 node.js 聊天室中播放声音?

问题描述

我整天都在寻找如何用 node.js 播放声音,我不能使用“document.getElementById”,也不能使用“new Audio”。我希望它能够在我在聊天室中 @everyone 时播放声音。音频文件名为“ping.mp3”,与我的主 node.js 文件位于同一路径。我需要一些建议或代码片段。谢谢!

标签: javascriptnode.jsexpresssocket.io

解决方案


这是可能的,但有点棘手。您可以使用play-sound它来为您处理:

var player = require('play-sound')(opts = {})
 
player.play('foo.mp3', function(err){
  if (err) throw err
});

它基本上所做的是在环境中寻找声音播放器并尝试使用其中一个播放 mp3:

const { spawn, execSync } = require('child_process');
// List of players used
const players = [
    'mplayer',
    'afplay',
    'mpg123',
    'mpg321',
    'play',
    'omxplayer',
    'aplay',
    'cmdmp3'
];
// find a player by seeing what command doesn't error
let player;
for(const p of players) {
  if (isExec(p)) {
    player = p;
    break;
  }
}

function isExec(command) {
  try{
    execSync(command)
    return true
  }
  catch {
    return false
  }
}
spawn(player, ['ping.mp3']);


推荐阅读