lx-music-desktop/README.md
2023-03-08 18:39:03 +08:00

11 KiB
Raw Blame History

lx-music logo

Release version Build status Build status Electron version Dev branch version

洛雪音乐助手桌面版

说明

一个基于Electron + Vue 开发的音乐软。下面是这个项目的技术栈介绍:

  1. Electron: 基于Node.js和V8构建的桌面应用框架可以使用HTML、CSS和JavaScript构建跨平台应用程序。
  2. Vue3: 基于web组件模型构建的框架能够在front-end实时更新DOM数据还能实现双向数据绑定。
  3. Vue-Router: 官方提供的Vue3路由管理器可以实现SPA的路由功能。
  4. Vuex: 一种状态管理器,解决了组件之间共享状态逻辑复杂的问题,使状态的传递和管理更加清晰、方便。
  5. TypeScript: 超集编程语言,通过类型检查来提高代码健壮性和可维护性。
  6. Babel: JavaScript编译器可以实现将ES6+的代码编译成ES5代码以兼容老版本的浏览器。还具有其他功能例如把JSX、TypeScript转换为JavaScript。
  7. ESLint: JavaScript代码检查工具可以保证代码规范和可读性。
  8. webpack: 自动化构建工具支持各种模块打包并提供代码压缩、混淆、hash等功能。
  9. Pug: 一种模板引擎可以减少HTML中的重复代码并支持使用变量和函数等。
  10. postcss: 给CSS代码添加浏览器前缀还支持使用CSS变量和函数等。
  11. Mini-css-extract-plugin: 把CSS代码提取到独立的文件中并支持自动化代码压缩。
  12. Svg-sprite-loader: 把多个SVG文件合并成一个SVG sprite并提供自定义加载器。
  13. Font-list: 通过Node.js实现获取系统字体信息的轻量库。
  14. better-sqlite3: 基于Node.js的轻量级SQL数据库管理库具有更快的速度和更好的API。
  15. Socket.io: 基于WebSocket的数据传输协议可以实现实时通讯功能。
  16. Sortablejs: 基于jQuery的拖拽排序插件可以用于网站的拖拽排序等场景。
  17. Electron-log: 基于Electron的日志管理库兼容Node.js中的console.log()。
  18. Http-terminator: 基于Node.js的HTTP服务器管理库允许在站点关闭时终止当前处理程序并允许请求完成。
  19. Image-size: 基于Node.js的图片大小检测库允许从图像数据中提取和解析JPEG、PNG和GIF图片字节的大小。
  20. Music-metadata: 基于Node.js的音乐元数据解析库可解析MP3、MP4、FLAC、OGG、WMA等音乐格式。
  21. Socket.io: 基于WebSocket的数据传输协议可以实现实时通讯功能。
  22. Electron-store: 基于Node.js的Electron应用程序中的持久化本地存储库允许在应用程序的生命周期内访问和存储数据。

这个项目所用的技术栈都是当前前端开发比较流行的组件库和工具,可以提高开发效率和代码健壮性,降低出错率,便于团队合作。

已支持的平台:

  • Windows 7 及以上
  • Mac OS
  • Linux

软件变化请查看:更新日志
软件下载请转到:发布页面
或者到网盘下载网盘内有MAC、windows版https://www.lanzoui.com/b0bf2cfa/ 密码:glqw(若链接无法打开请百度:蓝奏云链接打不开)
使用常见问题请转至:常见问题

目前本项目的原始发布地址只有GitHub蓝奏网盘,其他渠道均为第三方转载发布,与本项目无关!

Scheme URL支持

从v1.17.0起支持 Scheme URL可以使用此功能从浏览器等场景下调用LX Music我们开发了一个油猴脚本配套使用,
脚本安装地址:https://greasyfork.org/zh-CN/scripts/438148

若你想自己调用LX Music可以看Scheme URL支持

数据同步服务

从v2.2.0起,我们发布了一个独立版的数据同步服务,如果你有服务器,可以将其部署到服务器上作为私人多端同步服务使用,详情看该项目说明

启动参数

目前软件已支持的启动参数如下:

  • -proxy-server 设置代理服务器,代理应用的所有流量
  • -proxy-bypass-list 以分号分隔的主机列表绕过代理服务器
  • -play 启动时播放指定列表的音乐
  • -search 启动软件时自动在搜索框搜索指定的内容
  • -dha 禁用硬件加速启动Disable Hardware Acceleration
  • -dt 以非透明模式启动Disable Transparent
  • -dhmkh 禁用硬件媒体密钥处理Disable Hardware Media Key Handling

启动参数的详细说明请看启动参数说明

数据存储路径

默认情况下,软件的数据存储在:

  • Windows%APPDATA%/lx-music-desktop
  • Linux$XDG_CONFIG_HOME/lx-music-desktop~/.config/lx-music-desktop
  • macOS~/Library/Application Support/lx-music-desktop

在Windows平台下若程序目录下存在portable目录则自动使用此目录作为数据存储目录v1.17.0新增)。

源码使用方法

环境要求Node.js 16+

# 开发模式
npm run dev

# 构建免安装版
npm run pack:dir

# 构建安装包Windows版
npm run pack:win

# 构建安装包Mac版
npm run pack:mac

# 构建安装包Linux版
npm run pack:linux

UI界面

lx-music UI

常见问题

常见问题已移至:https://lyswhut.github.io/lx-music-doc/desktop/faq

贡献代码

本项目欢迎PR但为了PR能顺利合并需要注意以下几点

  • 对于添加新功能的PR建议在PR前先创建issue说明以确认该功能是否确实需要
  • 对于修复Bug PR请提供修复前后的说明及重现方式
  • 其他类型的PR则适当附上说明

贡献代码步骤:

  1. 参照源码使用方法设置开发环境
  2. 克隆本仓库代码并切换到dev分支开发
  3. 提交PR

项目协议

本项目基于 Apache License 2.0 许可证发行,以下协议是对于 Apache License 2.0 的补充,如有冲突,以以下协议为准。

词语约定:本协议中的“本项目”指洛雪音乐桌面版项目;“使用者”指签署本协议的使用者;“官方音乐平台”指对本项目内置的包括酷我、酷狗、咪咕等音乐源的官方平台统称;“版权数据”指包括但不限于图像、音频、名字等在内的他人拥有所属版权的数据。

  1. 本项目的数据来源原理是从各官方音乐平台的公开服务器中拉取数据,经过对数据简单地筛选与合并后进行展示,因此本项目不对数据的准确性负责。
  2. 使用本项目的过程中可能会产生版权数据,对于这些版权数据,本项目不拥有它们的所有权,为了避免造成侵权,使用者务必在24小时内清除使用本项目的过程中所产生的版权数据。
  3. 本项目内的官方音乐平台别名为本项目内对官方音乐平台的一个称呼,不包含恶意,如果官方音乐平台觉得不妥,可联系本项目更改或移除。
  4. 本项目内使用的部分包括但不限于字体、图片等资源来源于互联网,如果出现侵权可联系本项目移除。
  5. 由于使用本项目产生的包括由于本协议或由于使用或无法使用本项目而引起的任何性质的任何直接、间接、特殊、偶然或结果性损害(包括但不限于因商誉损失、停工、计算机故障或故障引起的损害赔偿,或任何及所有其他商业损害或损失)由使用者负责。
  6. 本项目完全免费,且开源发布于 GitHub 面向全世界人用作对技术的学习交流,本项目不对项目内的技术可能存在违反当地法律法规的行为作保证,禁止在违反当地法律法规的情况下使用本项目,对于使用者在明知或不知当地法律法规不允许的情况下使用本项目所造成的任何违法违规行为由使用者承担,本项目不承担由此造成的任何直接、间接、特殊、偶然或结果性责任。

若你使用了本项目,将代表你接受以上协议。

音乐平台不易,请尊重版权,支持正版。
本项目仅用于对技术可行性的探索及研究,不接受任何商业(包括但不限于广告等)合作及捐赠。
若对此有疑问请 mail to: lyswhut+qq.com (请将+替换成@)