本篇文章介绍如何将音乐播放器的运行情况持久化记录到日志文件中,这对分析程序意外情况出现的原因很有帮助!
这里选择cargo-packager作为打包程序,不要问为什么不用cargo-bundle,因为我用这个没有打包成功
本篇文章介绍Slint UI如何为播放器页面添加按键绑定,核心思路是当窗口聚焦时,扫描用户按键输入,命中指定按键时,自动调用相关回调函数。Slint UI支持F...
本篇文章介绍Slint UI如何为播放器页面添加多语言支持,让你的应用走向国际!Translations | Slint Docs
Slint UI内置全局调色板,支持运行时动态切换明暗主题,这通过更改Palette.color-scheme来实现:
将前文写的零散的UI组件(歌曲列表/播放控制面板/歌词面板/设置面板)拼装起来,组成最终的音乐播放器UI,用TabWidget分成多标签页,每一个标签页分担不同...
目的是从.mp3/.flac/.wav/...文件中提取歌曲名称/艺术家/音频时长信息/歌词信息/专辑封面
其中,进度条拖动来改变播放进度的实现比较特殊,因为进度条一方面是根据音乐播放进度从后台用定时器定时更新的,另一方面又要支持用户手动拖动来改变播放进度,为了防止用...
需要在标题栏上显示排序图标,实现点击排序功能,因此额外需要定义一个枚举类型SortKey指示排序依据。这里的排序图标也手动绘制,不使用网络上的图标:
开始介绍播放器UI的构建部分,但是不会详细讲解Slint UI的设计基础,没有意义,因为官方文档介绍的已经十分详细了,一些基本用法需要借助参考文档熟悉。
Slint UI支持在.slint文件中声明全局变量,然后在Rust代码中访问/修改该变量的值,这样即可完成UI状态的更新:
如果sink.append之后没有thread::sleep,程序会立刻结束,任何声音都不会被播放,这是因为,根据Rust变量的生命周期,stream_hand...
有多少人是在玩转了 Python 或 JavaScript 之后,觉得有点寂寞,于是就转向Rust的?信心满满地打开官网,然后……就没有然后了。三天后,他们默默...