今天给大家分享一下我最近做的一个项目,一个基于 toy 二的桌面音乐播放器。 说到这个桌面应用开发,大家第一时间可能想到的是 elek, 但是 elek 打包出来的应用动不动就一百兆起步,是不是有点太大了? 这次我尝试了一下这个头尾二,结果打完出来只有三兆,体积直接缩小了三十倍。今天我就给大家分享一下这个项目, 先给大家看看这个音乐播放器长什么样,这是一个功能完整的本地音乐播放器,支持这个导入本地音乐文件夹,还有播放控制, 播放暂停,上一首下一首,还有这个进度条的拖动,然后它会显示这个歌曲的信息,比如说这个标题,歌手专辑时长等。 为什么选这个 toy 二呢?主要就是因为它的打包体积。然后 大家可以看一下,左边的是这个 ture 二打包出来的一个应用,只有三点五兆, 右边的这个是 electron 写的一个桌面应用,打包出来是呃一百兆,它俩的体积差距大概有三十倍差距,是不是很夸张? 因为这个原理也很简单,因为这个 electra 每个应用都自带了这个主敏和 note gs, 所以 体积非常大。然后这个 tori 用的是系统自带的 webview, 所以 打不出来它会小很多。 除了体积来说, troy 的 性能也更好,启动快,然后占用内存也小。不过对于我这个简单的音乐播放器应用来说,主要性能优势还是体现在这个体积上的。然后我们可以看这个 troy 的 文档, 这个文档上面说了,这个 troy 是 一个用于构建小巧快速的二进制程序的框架,支持这个主流的桌面和移动平台。 开发者可以集成任何编辑为 html、 javascript 和 css 的 前端框架来构建用户界面, 并在需要时利用这个 rust, swift 和 coteline 等语言作为后端的逻辑处理。 然后我们可以使用这些啊,任意一种命令来构建我们的应用。然后我用的是这个呀,通过这个进行构建应用,但是我们构建应用前它需要有个前置条件, 然后它首先需要安装这个系统,依赖啊,我用的是这个 windows 系统,所以说我们就 所以说需要按照这个 windows 系统的要求进行下载啊,然后这些东西我都已经下载过了,然后也已经可以运行了, 如果你们需要自己去使用的话,就需要按照他这个步骤一步一步进行下载配置的。然后我给大家演示一下这个应用的核心功能。 然后这个应用是首先是选择这个音乐文件夹, 我们点击这个按钮,然后选择音乐,选择完之后它会去这个文件夹中查找里面的所有,呃,包括这个 mp、 三 wav 等格式的音乐文件, 查找到之后它会显示在我的音乐这部分, 然后我们通过点击这个操作按钮,点击播放的时候,他会进行音乐播放,然后这个是上一首,这个是下一首,这个是暂停, 然后这部分是音乐的封面,比如说 你这个文件夹里面有同名的图片的话,它会作为一个音乐的封面,如果有同名的歌词的话,它会作为一个音乐的歌词,然后显示在这个部分, 这个是进度条,我们可以通过进度条进行拖动音乐的播放, 然后这个播放列表会自动保存,重启应用之后还能恢复上一次的状态。 然后这个是我们前端的主要代码,就是如果你不使用这个后端的功能的话,完全只需要编写前端部分就可以了。然后我这边是用到了三个插件, 一个是这个文件选择文件选择的插件,还有个是读取文件的插件,还有个是数据持久化的插件, 我们需要安装这些插件之后才能使用这些功能。这些都是呃 tory 提供的一个官方的插件,它里面插件还挺多的, 比如说这里就提提供了基本上我们能使用的插件,它这里都有, 我们如果自己需要的话,可以通过它这个命令进行下载,下载之后还需要这个配置, 比如说这权限,你需要在这些呃这个文件中进行配置,权限配置之后才能呃才能使用。 然后接下来是我这个一个前端的页面代码, 这个代码是从这个文件夹中导入音乐,它首先会获取一个文件地址,然后通过地归文件中的所有文件夹,然后找出它里面的所有的音乐, 找出之后这边会有一个类型进行存储,会存储它的 id, 还有音乐名字、音乐的这些啊,作者专辑等信息。 这个是把音乐保存在这个本地存储中。 然后这边有三个函数,这个函数是获取音频时长的,用来把这个音频时长转换成一个自互串格式, 这个是用到了它里面的一个 api 进行获取的,然后这个是获取这个音频文件的原数据, 然后这个原数据的话用了一个这个用了一个插件进行的,它可以获取到这个啊音乐的一些信息,比如说这个啊艺术家是什么,属于什么专辑的, 然后这个就是从啊 blob 对 象获取这个音频市场,然后把它这个音频市场转换成一个自转格式, 然后这个文件是主要是用来做触式化存储,然后保存音乐到这个本地存储中的, 然后保存文件夹路径到这个本地存储中,方便下次的时候可以直接从这个本地存储进行获取,然后这个是个时间,嗯,格式化的一个函数。 然后总的来说,这次用这个 troy 二做的一个音乐播放器,体验还是不错的, 相比那个 electro 来说,最大的优势是这个打包体积小了很多,从这个一百兆降到了三点五兆。 然后托瑞奥的插件系统也很好用,大部分功能都有这个现成的插件,不需要太懂这个 rust 就 能上手。对于前端开发来说,这个学习成本不算太高。 如果你做桌面端应用的话,我的建议是如果对打包体积和性能要求比较高的话,可以尝试用这个 tori, 如果需要用到很多 node js 的 生态,或者更熟悉这个,呃, java script 可以 用这个 electron, 如果可以的话就是两个都试试,看哪个更顺手。 然后今天的分享就到这里了。
粉丝271获赞1186

刚才其实有同学提到了说 tori 这个事件在哪里处理,其实就是我刚才给大家去演示的 tori 这一部分呢,在我们那个核心 s r s r c tori 里面 s r c 点开,比如说我在这里面去创建一个这个 command, 假设我在这儿再去定一个红啊,这个呢就叫做,比如说 tori, 呃, command, 我 们比如说定一个叫做 test 啊, test 好, 这样定义好之后,那么接下来呢,我们可以在里面去接收参数,或者你哪怕没有参数也没问题,然后在这儿呢,直接通过 format 来去拿到它的数值来逐步去打印也好啊,或者说呢,你把这个数据呢给它返回,返回一个新的 test, 这样我们就可以在 invoke handler 这里其实就是一个 ipc 的 实现,我们去把 chat, 我 们去把这个 test 全部给它拿过去,过去以后在那边去调用的话,它有两种途径。第一种是直接通过 invoke 的 方式啊,比如说在这啊,到那个 page home page 这里啊,假设我直接通过里面的 invoke 拿到这个方法,拿到这个方法之后呢,你可以打印来看一看这个方法,或者说,呃,我们把这个方法呢,它的名字直接放在这,大家可以看到,比如说 jason 点 sdf, 把 invoke 来,我给他打印来看一看, 它竟然会放在这边,我们再启动一下,好,这个上面,哎,没有没有显示出来,好,这是函数,函数不能映 book 啊,我想一下直接函数的名称吧,我给它拿过来,再来大家看一下,到这边刷新,把这个全部关掉之后,重新来启动一下, 这是 homepage 好 像 invoke, 看一下 homepage 啊,没问题,就就在这边吧,显示在这名称 name 现在是空的,对吧?从这里拿到名称是一个空的,然后呢,我们可以从它里面去拿到这个一二三,比如我把这个一二三呢放到下面来,就直接放到这里啊, 我们只把一二三拿下来,上面那一块的话,不动它的,放到这一二三保存上面。这个呢,把它放到最上面,好保存一下,一二三可以现在显示在这儿,然后呢我把这个一二三改一下,改成 invoke 点 name, 因为这是一个函数啊,大家可以看到吧,函数名称也拿到了,那么其实我接下来就可以在需要调用的时候去调用,比如说你看我这里有个发送,我就可以调用 invoke chat, 这个 chat 就 刚好通过 ipc 的 方式在这边调用了这个 chat chat, 那 你如果那边想去掉 test 呢?也没问题,你直接在这边去调用 test, 挂在这儿调用 test 或者是调用 great 都可以啊,这三个方法在我这边都有定义,在这边都有定义好,那比如说还可以像刚才说的,你在这儿呢,单独去把命令给它定义出来,单独定义一个,呃, command, command 点 r s 定义好,那么有哪几个方法呢?就假设把你这三个方法全部给它复制过去,丢,丢到这儿,对吧?丢到这里,然后呢把这个作为一个模块区给它暴露出去啊,直接通过 most 暴露,把这个 command 呢给它暴露出去。 command 暴露到外面去之后,它这里呢相当于整个直接注视掉这里,全部改掉啊,改掉什么呢?直接把它引进来就是直接,呃,在这里 举个例子啊,这里我先给它注示了,在这儿来引入,就比如说一个是 commands great 相关的啊,当然你这个要把它导进来,导的话呢,你可以看到这边怎么样去导入的?我们直接把它导进来,按照刚才定义的这个形式啊,直接把它导进来,把你缺失的这几个它可以提示导入。当然这种情况下呢,大家如果说定义的比较多的话,我就建议大家按照这样的分层自己去处理一下啊,直接去处理一下 啊,大家可以理解成 rest 这部分呢,就相当于是端能力啊,端能力就是他在客户端你就必须要通过它这一套来去实现 下去理解就可以了啊。这边我们保存一下啊,就是基本的这个实现,这样界面有了之后,接下来我们就去构建服务端,好,我们稍微把速度提快一点啊,这是客户端,包括 ui 界面,整个客户端应用我们就已经基本上啊成型了,就这样子我们点发送呢,可以去发送到客户端,也可以发送到服务器。


只要你把这三个按键玩明白了,你也是电脑高手。第一个 ctrl 键也叫控制键,它不能单独使用,要搭配这二十六个字母一起使用。比如说 ctrl 加 a 全选 ctrl 加 s 保存, ctrl 加 d 向下填充, ctrl 加 f, 查找。更多功能键如下。第二个, windows 也叫窗口键, windows 加 d 可以 快速回到桌面。更多功能键如下。第三个 alt 键,它有一个非常厉害的快捷键, alt 加 f。 四,可以关闭任何程序。更多功能键如下。

每次使用苹果电脑的时候,我都觉得系统里的原声壁纸真的非常经典耐看,很多壁纸放在手机上当锁屏壁纸也相当好看。如果你的手机和其他设备享用到苹果电脑里的原声壁纸,那你就接着往下看 这个视频就教会你怎么把苹果电脑里好看的原声壁纸给提取出来。首先第一步我们打开访达窗口,在顶部左上角选择前往,点击前往文件夹,然后在弹出来的输入框内输入下面这个路径地址,我就给大家放在屏幕上了,然后回车再打开这个文件夹,里面就是存放系统壁纸文件的, 所有的文件都是 h e i c 格式的,如果像我这样只显示一张壁纸文件的,这是因为其他壁纸你还没有下载到本地电脑上。这个时候你可以打开系统设置,选择墙纸,在这里就可以看到每张壁纸的右上角有一个云朵的图标,这些就是还没有下载到本地文件的,你可以选择自己需要的壁纸 进行下载。这里要注意,如果你下载的是动态桌面的这些壁纸,你打开下载文件后,是可以看到它里面包含了许多张图片,这些光线变化的图片就是可以在不同时间段进行自己切换,所以在电脑上就会呈现,每个时间段你看到壁纸都会有不同的光线变化形成。 我们在这里选择一张自己喜欢的,然后单击右键选择导出,你们看他一张图片的文件大小,确实还挺大的,这里可以自己调节一个合适的大小,毕竟只是手机使用,如果是其他电脑使用的话,就建议把质量拉到最佳。 苹果手机的话,直接用隔空头送到手机就可以了。将我的魅族手机直接用跨屏互联传输一下,这样手机就可以用上苹果电脑这些经典耐看的原声壁纸了。


发布两个半月,性能依旧权威,等等等,别等了,再等涨价了!和平精英,一百六十五赫兹,一次性坑二十七个队友,手机平板一碰互传,二十个窗口同开不卡顿,还有 pc 级 wps 窗口随意调节。荣耀 magic pad 三 pro 真的 太全面了! 第五代肖龙八至尊版处理器,十三点三英寸,一百六十五赫兹超高刷护眼屏,一万两千四百五十毫安时青海湖电池,可与鸿蒙、苹果、安卓全品牌之联,简直生态破壁机。游戏原声支持超高帧率,八扬声器空间音频, 学习办公可以一句话生成 ppt, 没时间开会,没关系, ai 托管帮你开会,文稿自动排版,长篇文章一键总结,生产力大大提升。八十瓦超级快充也不会有电量焦虑,年底预算充足还刚好需要平板,荣耀 magic pad 三 pro 是 很棒的选择。
