kwgt 音乐播放器控件 mi Music Info 封面标题 上下曲
mi(Music Info)函数
| 函数 | 说明 |
|---|---|
$mi(title)$ | 当前播放的歌曲标题 |
$mi(artist)$ | 艺术家 / 歌手 |
$mi(album)$ | 专辑名 |
$mi(cover)$ | 封面图 URL |
$mi(position)$ | 当前播放位置(毫秒) |
$mi(duration)$ | 歌曲总时长 |
$mi(playing)$ | 是否在播放(真 / 假) |
$mi(package)$ | 当前播放器 App 的包名 |
$mi(prev)$ | 上一曲 |
$mi(next)$ | 下一曲 |
前置条件
kwgt 需要通知监听权限才能读取音乐信息:
系统设置 → kwgt → 允许通知监听
如果这个权限没开,mi 函数全部返回空。
音乐控件实战
一个完整的迷你音乐小组件需要:
- 封面图 → Image 元素,内容填
$mi(cover)$(注意用 HTTP 动态图片方式加载) - 标题 → Text 元素,内容
$mi(title)$ - 艺术家 → Text 元素,内容
$mi(artist)$,字号小一点 - 播放 / 暂停按钮 → Shape 元素 + Touch 动作(Toggle Play/Pause)
- 下一曲按钮 → Shape + Touch(Next)
- 进度条 → Shape(弧形)+ Paint 的 Gradient 由
$mi(position) / $mi(duration) * 360$控制
没有音乐时怎么办
用 if 函数 + Opacity 控制整个音乐控件组在没音乐时自动隐藏:
$if(mi(playing), 100, 0)$
放在 Group 的 Opacity 字段里 → 没有音乐时整个音乐控件透明。
兼容性
kwgt 的 mi 函数通过 Android 标准的 Media Session API 工作,和系统通知栏上的音乐卡片同源,所以:
- 绝大多数主流播放器都支持(Spotify、网易云、QQ 音乐、Poweramp、YouTube Music 等)
- 极少数播放器可能不兼容(尤其是国内小众播放器)
- 如果某个播放器的封面一直空,换另一个试试