使用electron开发桌面音乐播放器

news/2025/2/19 8:57:39/

一:主要技术栈
前端:electron-vue+vue-router+axios+es6+pouchDB+node js+nsis;

二:目前已完成的功能
音乐播放:包括播放进度条、歌曲切换、缓存条、快进
音乐处理:加密,解密。
登录注册:登录、注册、激活
本地数据库:节目单曲与节目信息的本地数据库的存储、冗余单曲的本地删除与数据库删除

三:参考资料
electron-vue https://github.com/SimulatedGREG/electron-vue
pouchDB https://www.cnblogs.com/suziwen/p/4507684.html
web audio http://www.alloyteam.com/2014/12/web-audio-api-na-xie-nian-di-web-audio/

四:技术细节
1.播放
关于主要功能音频播放,才用的是Audio Data API 原因呢。。。忘了。不采用audio标签,后面等代码优化会采用Web Audio API 详情看参考资料 web audio。现在就有一问题。因为采用的是new audio 所以每次切歌的时候需要先pause 然后销毁 null。但是这时候销毁后,audio还会继续缓冲,但是不会播放。当快速点击切歌的时候会积攒特别多的音频需要缓冲,所以当快速切歌后的歌曲需要特别长的时间去缓冲当前歌曲。待解决。

2.音频加密
见博客中的另外一个文章使用crypto。

3.本地数据库pouchDB

    var music = new PouchDB('music');//存program.put({_id:'唯一id',content:'内容'}).then(function (responseqwe) {}).catch(function (erre) {})//取music.get('上面的id必须是字符串').then(function(doc) {}).then(function(response) {}).catch(function (err) {}}).then(()=>{if(r == _this.musicLis.length-1){_this.changeUpOk()}});            // 获取全部music.allDocs({include_docs: true,descending: true}, function (err, doc) {}});       //删除单个music.remove({_id:'上面的id', _rev:'获取到的_rev'});//删除全部music.destroy().then(function (response) {console.log('成功清除全部缓存')}).catch(function (err) {});            

4 .electron

由于主体部分是webview 和本地进行交互,webview 使用的是苹果字体,但是webview 使用苹果字体就得下半天 40多MB所以需要从electron启动一个本地服务器,然后把字体托给webview

electron main protocol.registerFileProtocol('nameee', (request, callback) => {const url = request.url.substr(7);callback({path: path.normalize(`${__static}/${url}`)})  // 指向的本地资源}, (error) => {if (error) console.error('Failed to register protocol')});// webview
@font-face {font-family:PingFangSC-Light;src: url(nameee:///font/PingFangRegular.ttf) format('TrueType');
}还有一个webview 使用本地方法的方法就不写了。具体使用require('events');

托盘之类的自己百度去吧。百度写的比我好

打包 mac 直接使用 npm run build
windows npm run build 然后使用nsis 打包成可自定义安装工具

5 . 下载

const os = require("os");
export function osType (){return (os.type()=='Windows_NT')?process.cwd():'/tmp';
}// windows 下载目录为 安装软件的根目录  mac 为tmp 文件夹

http://www.ppmy.cn/news/375192.html

相关文章

躁!DJ 风格 Java 桌面音乐播放器

本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器。 本文作者:HelloGitHub-秦人 HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来一款开源 Java 版桌面 DJ 音乐播放器项目——XR3Player,它…

桌面widget详解(四)——桌面音乐播放器(实战)

前言:这将是这个系列的最后一篇了,我写这几篇文章也是累的快不行了,再写就真的要吐了,言归正转,前面三篇已经把widget中涉及到的基本知识基本上讲完了,今天我们就做一个小例子,看看桌面音乐播放…

桌面音乐频谱linux,X Music Spectrum(音乐频谱桌面特效)

XMusicSpectrum是一款音乐频谱桌面特效软件,听上去可能很复杂,简单点来说就是当你用播放器播放音乐时,屏幕下方会出现动态音乐频谱,让你的桌面变成更加丰富多彩。 相关软件软件大小版本说明下载地址 X Music Spectrum是一款非常有…

用了【WRITE-BUG数字空间】,其他文档软件可以卸载、注销账号了

都3202年了文档都进化成在线协同编辑文档了 让我看看谁还在用本地软件写文档啊~滋滋滋 使用【WRITE-BUG数字空间】云文档全键盘写作不是梦!铁汁,听我句劝,把本地软件卸载了奥,你把握不住~ 程序员兄弟姐妹们的最爱编辑器&#x…

音频可视化图形引擎—Specinker

相关链接: 下载地址:specinker5.1.exe - 蓝奏云(崩溃请更新显卡驱动,并使用独立显卡打开) 旧版博客:Specinker旧版博客_ItaLink-CSDN博客 使用教程:Spec 使用教程_ItaLink-CSDN博客_spec软件…

盘点 6 个开源的音乐播放器!

盘点几个开源的音乐播放器,在这些项目中你可以学习到 React、Vue、Kotlin等相关的技术栈。有的是仿当前比较火的音乐应用,而有的是开发者自主开发。 本期推荐开源项目目录: 1. 仿 QQ 音乐 2. 网易云音乐 3. Material 主题音乐播放器 4. 不太现…

Android音乐App桌面图标制作以及启动页面开发(简易音乐 一)

Android音乐App桌面图标制作以及启动页面开发( 简易音乐 一 ) 关于效果第一步第二步第一步 修改SplashAcitivity的布局页面第二步 修改androidmanifest.xml第三步 权限申请帮助类第四步 修改splashAcitivity.java 关于 其实一直想做一款属于自己的音乐a…

C++结构体

目录 一、结构体的概念 二、结构体定义和使用 三、结构体数组 四、结构体指针 五、结构体嵌套结构体 六、结构体做函数参数 七、结构体中const使用场景 一、结构体的概念 结构体属于用户自定义的数据类型,允许用户存储不同的数据类型 二、结构体定义和使用 语法&…