前言

今天我们来打造一个个人播放器,我们的目的是为了学习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
开启精彩搜索

历史搜索

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

购买将消耗【10

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

请输入验证码

点击验证码可以刷新

你确认吗?

确认

2024年10月1日

新增

新增