更新speakerlib的路径
This commit is contained in:
127
README.md
Normal file
127
README.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# ComputerCraft 网易云音乐播放器
|
||||||
|
|
||||||
|
|
||||||
|
## 📌 简介
|
||||||
|
|
||||||
|
本程序是一个基于 **ComputerCraft**(Minecraft 模组)的网易云音乐播放器,使用 **Lua** 编写,调用了第三方网易云 API、DFPWM 音频转码 API,结合 [Basalt GUI库](https://github.com/PyPyl/Basalt) 构建图形界面,支持搜索/播放网易云音乐,并支持歌单播放、歌词同步等功能。
|
||||||
|
|
||||||
|
此版本支持中文音乐名称显示(搜索出来的列表),但搜索只能使用英文或中文拼音
|
||||||
|
|
||||||
|
支持歌词显示,且会根据显示大小变更文字分辨率,但在默认的终端使用会显示不全,所以此功能建议使用屏幕显示(monitor 方向 music168.lua)
|
||||||
|
|
||||||
|
此软件使用触控交互,所以不支持石头电脑
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 安装方法
|
||||||
|
|
||||||
|
在 Minecraft 中安装好 [ComputerCraft](https://www.mcmod.cn/class/1681.html) 模组后在电脑终端:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
wget https://git.liulikeji.cn/xingluo/ComputerCraft-Music168-Player/releases/download/v1.1.0/music168.lua
|
||||||
|
```
|
||||||
|
|
||||||
|
运行:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
music168
|
||||||
|
```
|
||||||
|
|
||||||
|
即可启动播放器。
|
||||||
|
并自动补全运行库
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ 使用方法
|
||||||
|
|
||||||
|
### 🔍 搜索音乐
|
||||||
|
|
||||||
|
1. 在顶部输入框中输入歌曲名(拼音或英文均可,空格隔开)或网易云音乐 ID(需要多试几次)。
|
||||||
|
2. 点击输入框右侧的 `Q` 按钮开始搜索。
|
||||||
|
3. 下方列表中点击歌曲即可播放。
|
||||||
|
|
||||||
|
### 📂 歌单播放
|
||||||
|
|
||||||
|
1. 底部菜单栏点击 `{G}` 按钮,进入歌单搜索界面。
|
||||||
|
2. 输入歌单 ID(可通过复制粘贴)并点击 `Q` 搜索。
|
||||||
|
3. 点击歌单中的音乐可播放。
|
||||||
|
|
||||||
|
### 🎵 播放控制
|
||||||
|
|
||||||
|
- 点击播放界面中的按钮可控制播放暂停。
|
||||||
|
- 点击 `T` 可打开播放列表,点击列表内歌曲切换歌曲。
|
||||||
|
- 点击播放界面左上角的 `V` 退出播放界面到搜索。
|
||||||
|
- 点击进度条可以切换播放进度
|
||||||
|
|
||||||
|
### 多通道音频
|
||||||
|
|
||||||
|
- 默认为全部单通道播放,如使用双声道音频请按以下操作
|
||||||
|
|
||||||
|
编辑文件 speaker_groups.cfg
|
||||||
|
```bash
|
||||||
|
edit speaker_groups.cfg
|
||||||
|
```
|
||||||
|
在内部写入例如:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
main = {}, --混合通道扬声器列表
|
||||||
|
left = {"speaker_0","speaker_1"}, --左声道扬声器列表
|
||||||
|
right = {"speaker_5","speaker_6"} --右声道扬声器列表
|
||||||
|
}
|
||||||
|
```
|
||||||
|
这里的"speaker_0","speaker_1"等数量不限制,但多了会导致音频不同步或超出最大上限
|
||||||
|
"speaker_0","speaker_1"等为扬声器名称,如果使用网线链接则是打开时聊天栏的名称,如果直接放在旁边则为方向名例如(top,left,right)
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 使用技术栈
|
||||||
|
|
||||||
|
- **语言**:Lua
|
||||||
|
- **GUI 库**:[Basalt GUI](https://git.liulikeji.cn/GitHub/Basalt)
|
||||||
|
- **网易云 API**:[liulikeji.cn](http://music168.liulikeji.cn:15843/)
|
||||||
|
- **DFPWM 音频转码接口**:[GMapiServer-ffmpeg](https://git.liulikeji.cn/xingluo/GMapiServer/)
|
||||||
|
- **歌词支持**:通过 `MusicLyrics.lua` 加载歌词
|
||||||
|
- **播放和格式转换**:通过`speakerlib.lua` 转换格式和处理播放
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚠️ 注意事项
|
||||||
|
|
||||||
|
- 本程序为半成品,部分按钮仅作装饰。
|
||||||
|
- 若播放无声音,请检查播放界面左下角时间是否为 `00:00`,如果长时间无变化,请稍等或重试。
|
||||||
|
- 因为网络延迟或 API 崩溃,可能导致播放失败。
|
||||||
|
- 播放效果依赖于 ComputerCraft 中的 **speaker** 外设(扬声器)。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🗂️ 更新历史
|
||||||
|
|
||||||
|
- **新增歌单播放功能**
|
||||||
|
- 修复部分播放逻辑与 UI 显示错误
|
||||||
|
|
||||||
|
- **新增中文音乐名,歌词显示,多通道音频**
|
||||||
|
- 使用了新版GMApi接口
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## 🛑 声明
|
||||||
|
|
||||||
|
> 本项目仅供学习交流使用,API 来源于第三方网易云api,音乐内容的版权属于原权利人。请勿用于商业用途。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🧑💻 项目作者
|
||||||
|
|
||||||
|
项目为个人开发,目前处于“咕咕咕”状态,更新不确定。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📬 反馈与支持
|
||||||
|
|
||||||
|
如有建议或问题,请联系项目原作者。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> 祝你享受愉快的音乐时光 🎶
|
||||||
|
在 ComputerCraft 世界中聆听你的网易云音乐❤
|
||||||
@@ -12,6 +12,7 @@ _G.Playprint = false -- 信息输出开关(true开,false关)
|
|||||||
_G.setVolume = 1 -- 音量控制(0-3)
|
_G.setVolume = 1 -- 音量控制(0-3)
|
||||||
|
|
||||||
local API_URL = "http://newgmapi.liulikeji.cn/api/ffmpeg"
|
local API_URL = "http://newgmapi.liulikeji.cn/api/ffmpeg"
|
||||||
|
local mypath = "/"..fs.getDir(shell.getRunningProgram())
|
||||||
|
|
||||||
-- 扬声器配置
|
-- 扬声器配置
|
||||||
local speakerlist = {
|
local speakerlist = {
|
||||||
@@ -27,7 +28,7 @@ local function printlog(...)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local function loadSpeakerConfig()
|
local function loadSpeakerConfig()
|
||||||
local speaker_groups = fs.open("speaker_groups.cfg","r")
|
local speaker_groups = fs.open(mypath.."/speaker_groups.cfg","r")
|
||||||
if speaker_groups then
|
if speaker_groups then
|
||||||
local content = speaker_groups.readAll()
|
local content = speaker_groups.readAll()
|
||||||
speaker_groups.close()
|
speaker_groups.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user