前言

今天我们来打造一个个人播放器,我们的目的是为了学习electron怎么使用!

设计

生产环境需要的模块

  1. electron
  2. electron-store:用来存储数据
  3. uuid:为了生成唯一ID
  4. bootstrap:界面UI

使用的图标库

font-awesome(我们使用CDN的方式引入)

使用的打包模块

electron-packager

整体构想 一,我们启动应用后进入主页面,点击添加歌曲到曲库进入添加页面. 二,在添加页面点击选择音乐打开操作系统的文件选择框. 三,选中文件后把文件信息放入添加页面. 四,在添加页面点击导入音乐,把信息导入主页面. 五,在主页面实现音乐播放,暂停,删除等功能

页面 20200410162044-2021-12-29-17-06-04 20200410162109-2021-12-29-17-06-24

目录结构 20200410162659-2021-12-29-17-06-40

实现

BrowserWindow类再封装成AppWindow,实现了窗口代码的复用

20200410163353-2021-12-29-17-06-55

electron-store实例化类进一步封装成存储music信息的类

/**
 * 增强electron-store模块,定制化音乐存储文件
 * */
const Store= require('electron-store')
const uuidv4=require('uuid/v4')
const path=require('path')

class DataStore extends Store{
    //构造函数,该对象创建后,获取tracks属性,如果不存在返回个空数组
    constructor(settings){
        super(settings)
        this.tracks=this.get('tracks') || []
    }
    //保存tracks属性内容
    saveTracks(){
        this.set('tracks',this.tracks);
        return this;
    }
    //获取tracks属性内容
    getTracks(){
        return this.get('tracks') || []
    }
    //添加不重复的tracks属性内容
    addTracks(tracks){
        const tracksWithProps = tracks.map(track=>{
            return{
                id:uuidv4(),
                path:track,
                fileName:path.basename(track)
            }
        }).filter(track=>{
            const currentTracksPath = this.getTracks().map(track=>track.path)
            return currentTracksPath.indexOf(track.path)<0;
        })
        this.tracks=[...this.tracks,...tracksWithProps]
        return this.saveTracks()
    }
    //根据id删除tracks中的内容
    deleteTrack(trackId){
        this.tracks=this.tracks.filter(item=>item.id!=trackId);
        return this.saveTracks();
    }
}

module.exports=DataStore;

完整实例

实例放在github上,里面有详细注释,请点击我

打包

  1. 全局安装electron-packager模块

    npm install -g electron-packager

  2. package.json写个脚本

    "pack": "electron-packager . music-app --win --out ../music-app-dist --arch=x64 --app-version=0.0.1 --electron-version=8.2.1"

参数解析: electron-packager . music-app .是当前目录,music-app是应用的名称 --win --arch=x64 是windows平台的64位系统 --out ../music-app-dist 生成应用所在的路径 --electron-version=8.2.1 electron版本

  1. 执行打包命令

    ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/ npm run pack

大家注意,打包会下载一个文件,下载的很慢,所以把仓库源定位为淘宝的仓库.

总结

通过该案例就能进一步深入了解electron的工作原理,并且有一个个人的播放器,那是非常好的

THE END
推荐文章
  • 使用docker-compose

  • 在VPS的CentOS7.6系统中,安装新版内核并开启BBR加速

  • 从黄帝内经领悟的养生法则

  • 微信把地区设置为中国大陆

  • window10通过yutto下载B站视频

  • 怎么部署hexo

  • 黄帝内经-第42篇-风论篇(1)

  • 微信如何设置不看他人朋友圈?

评论 共0条
开启精彩搜索

热门搜索

暂无

历史搜索

用户名/邮箱/手机号
密码
用户名
密码
重复密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
注册
找回密码
邮箱/手机号
验证码
发送验证码
59秒后可重发
新密码
重复密码
请选择支付方式
余额支付

购买将消耗【10

微信支付
微信扫码支付 0 元
[ 04分50秒 ]
请使用微信扫一扫
扫描二维码支付
支付宝支付
支付宝扫码支付 0 元
[ 04分50秒 ]
请使用支付宝扫一扫
扫描二维码支付
已完成支付
未完成支付

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

0字

0字

2024年10月

0字

新增

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

新增

0字

0字

0字

新增

0字

0字

0字

0字

新增

0字

0字