Nodejs写的一个命令行音乐播放器
Nodejs写的一个命令行音乐播放器
MAC版本好像是可以直接npm安装的,linux下面好像需要安装库,没有试过 $ sudo npm install baidu.fm -g
On Debian/Ubuntu, the ALSA backend is selected by default, so be sure to have the alsa.h header file in place:
$ sudo apt-get install libasound2-dev
运行就直接baidu.fm即可
支持的功能 1.播放下一首
2.循环播放
3.选择随心听频道功能
4.加入歌词秀功能
给个截图
Node.js 写的一个命令行音乐播放器
安装与配置
在不同的操作系统上安装这个命令行音乐播放器的方法可能会有所不同。以下是针对不同系统的安装指南:
-
macOS: 如果你使用的是macOS,你可以直接通过npm全局安装这个音乐播放器。
$ sudo npm install baidu.fm -g
-
Linux: 在Linux系统中,你需要确保已经安装了相关的音频库。对于基于Debian或Ubuntu的系统,你需要安装
libasound2-dev
库。$ sudo apt-get install libasound2-dev
然后你可以通过npm全局安装这个音乐播放器:
$ sudo npm install baidu.fm -g
使用方法
安装完成后,你可以直接通过命令行启动音乐播放器:
$ baidu.fm
支持的功能
这个命令行音乐播放器支持以下功能:
-
播放下一首: 可以通过特定的快捷键或命令来跳过当前歌曲,播放下一首。
-
循环播放: 可以设置为循环播放当前频道的所有歌曲。
-
选择随心听频道功能: 用户可以选择不同的频道进行播放,例如流行音乐、古典音乐等。
-
加入歌词秀功能: 在播放歌曲时,可以显示对应的歌词,增强用户体验。
示例代码
为了实现这些功能,我们需要一些基本的Node.js模块,例如child_process
用于执行系统命令,fs
用于文件操作,以及一个音频处理库如node-lame
或ffmpeg
来处理音频流。
下面是一个简单的示例代码片段,展示了如何播放一首歌曲并支持基本的控制功能(如播放下一首):
const { exec } = require('child_process');
const fs = require('fs');
// 播放音乐
function playMusic(songPath) {
exec(`mpg123 ${songPath}`, (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error.message}`);
return;
}
if (stderr) {
console.error(`Stderr: ${stderr}`);
return;
}
});
}
// 播放下一首歌曲
function playNextSong() {
// 假设我们有一个包含歌曲路径的数组
const songs = ['path/to/song1.mp3', 'path/to/song2.mp3'];
let currentIndex = 0;
function next() {
currentIndex++;
if (currentIndex >= songs.length) {
currentIndex = 0; // 循环播放
}
playMusic(songs[currentIndex]);
}
setInterval(next, 1000 * 60); // 每分钟自动播放下一首
}
playNextSong();
以上代码只是一个简单的示例,实际应用中还需要考虑更多的细节和错误处理。希望这个示例能帮助你理解如何使用Node.js编写一个命令行音乐播放器。
任贤齐…好久没听他的歌了
传说中的水神吗?
加个油
对于一个基于 Node.js 的命令行音乐播放器,可以使用 baidu-fm
这样的模块来实现。以下是如何创建这样一个简单的命令行音乐播放器的步骤和示例代码。
步骤 1: 安装必要的依赖
首先,确保你的系统中已经安装了 Node.js 和 npm(Node 包管理器)。接下来,根据你的操作系统安装所需的音频库。
对于 Debian/Ubuntu 用户:
sudo apt-get install libasound2-dev
然后全局安装 baidu-fm
模块:
sudo npm install baidu-fm -g
步骤 2: 创建播放器脚本
创建一个新的文件,例如 music-player.js
,并添加以下代码:
const baidufm = require('baidu-fm');
// 初始化播放器
let player = new baidufm.BaiduFM();
// 设置随心听频道
player.setChannel('随便听听');
// 开始播放
player.play();
// 添加事件监听器
player.on('song', (song) => {
console.log(`Now playing: ${song.title}`);
});
// 播放下一首
process.stdin.on('keypress', (ch, key) => {
if (key && key.name === 'n') {
player.next();
}
});
// 开启键盘监听
process.stdin.setRawMode(true);
process.stdin.resume();
步骤 3: 运行播放器
保存文件后,在终端中运行该脚本:
node music-player.js
你可以按 n
键切换到下一首歌。
功能扩展
- 循环播放: 可以通过监听
end
事件并在事件触发时重新调用play()
方法实现。 - 歌词显示: 需要额外的模块(如
lyric
)来解析歌词,并结合baidu-fm
模块中的歌曲信息展示歌词。
注意事项
baidu-fm
模块可能需要更新以支持最新的百度音乐 API。- 确保你的网络连接正常,因为该播放器依赖于在线音乐流。
以上就是创建一个简单的基于 Node.js 的命令行音乐播放器的方法。