锁屏控制台不支持自定义质量标签,uni-app 的 backgroundaudiomanager 无 quality 属性,仅 title、epname、singer、coverimgurl 四字段生效;唯一可行方案是动态切换 coverimgurl 封面图并配合 seek 刷新。

锁屏控制台不支持自定义质量标签
uni-app 的 uni.getBackgroundAudioManager() 无法在 iOS 锁屏界面或 Android 媒体通知栏中显示“HQ/SQ”这类自定义文字。系统原生控件只读取 title、epname、singer、coverImgUrl 四个字段,且对内容长度、格式有硬性限制(iOS 尤其严格:title 超过 30 字会被截断,不支持 emoji 或括号内标注)。
quality 字段根本不存在于 BackgroundAudioManager API
翻遍 uni-app 官方文档和微信小程序基础库(截至 2026 年 8 月),BackgroundAudioManager 实例没有任何 quality、bitrate 或类似可写属性。试图调用 bgm.quality = 'HQ' 或 bgm.setQuality('SQ') 会直接报错 TypeError: bgm.setQuality is not a function。
常见错误现象:
- 在
onPlay回调里给bgm.title拼接 “(HQ)” —— iOS 锁屏显示异常(如乱码、截断)、Android 通知栏可能完全不渲染标题 - 用
bgm.epname填 “HQ 版本” —— 小米/华为省电策略下更容易触发后台杀进程,因为系统认为元数据“不规范” - 监听音频加载完成后再改 title —— 锁屏界面不会刷新,只显示初始化时的值
唯一可行的间接方案:靠 coverImgUrl 动态换图
虽然不能写文字,但锁屏封面图(coverImgUrl)是实时生效的。你可以预先生成两张封面:一张标 “HQ”,一张标 “SQ”,通过修改该 URL 触发锁屏界面更新。
实操要点:
- 图片必须是 HTTPS 直链,尺寸建议 300×300 以上(iOS 要求至少 144×144,否则模糊)
- 每次切换音质前,先清空旧图缓存:
bgm.coverImgUrl = '',再设新地址,避免部分 Android 机型复用缓存 - 不要用 base64 图片 —— iOS 完全不识别,Android 部分版本解析失败
- 换图后需主动触发一次
bgm.seek(bgm.currentTime)(哪怕只 seek 0.01 秒),否则某些厂商(如 OPPO ColorOS)锁屏封面不刷新
App 端额外注意:原生层可能拦截封面更新
在 uni-app 编译为 App 时,coverImgUrl 更新依赖 H5+ 的原生桥接。若你发现封面始终不变,检查:
- manifest.json 中是否启用了 “Media” 模块(iOS 必须,Android 推荐)
- 打包时是否勾选了 “启用 BackgroundMode”(否则后台运行时封面无法更新)
- 华为/小米手机是否手动关闭了“允许后台弹出界面”权限 —— 这会导致封面更新静默失败,无任何错误提示
真正难处理的不是怎么标 HQ/SQ,而是让这张图在锁屏上稳定出现——它得跨过 iOS 的媒体中心校验、Android 厂商的后台冻结、以及 uni-app 自身的资源加载队列。











