锁屏控制台信息不显示,首要确认title、singer、coverImgUrl三项必填字段是否齐全且合法:title必须为非空字符串,singer影响安卓锁屏显示完整性,coverImgUrl需为HTTPS可访问地址;Android需重置src触发刷新,iOS则严格要求manifest配置及用户手势触发play()。

锁屏控制台信息不显示?先确认三项必填字段
锁屏界面不显示标题、歌手或封面,90% 是因为 title、singer、coverImgUrl 没设全,尤其 title 是 iOS 强制要求项——缺了它,系统直接拒绝注册后台音频会话,连锁屏控件都不渲染。
-
title必须非空字符串,不能是空格或仅符号;iOS 下若为空,play()无报错但无声,且锁屏空白 -
singer和epname虽非强制,但华为/小米锁屏界面常只显示title+singer,漏掉singer就只剩歌名一行字 -
coverImgUrl必须是 HTTPS 可访问地址(H5 端可本地路径,但 App 端不行),404 或跨域会导致封面不加载,部分机型(如 OPPO)会直接隐藏整块信息区
Android 锁屏信息更新延迟或不刷新?别在播放中途改元数据
调用 bgm.title = '新歌名' 后锁屏没变,不是 bug,而是 Android 原生机制限制:锁屏卡片信息只在 play() 被首次调用时同步一次,后续修改字段不会自动刷新。
- 正确做法:暂停当前播放 → 修改
title/singer/coverImgUrl→ 调用bgm.src = '新地址'→ 再bgm.play() - 如果只是换歌名不换音频源,可用
bgm.seek(0)触发重载(部分机型有效),但不如重赋src可靠 - 小米 MIUI 13+ 和华为 EMUI 12 对元数据变更更敏感,建议每次换曲都走“pause → set → play”完整流程
为什么 iOS 锁屏信息显示异常?检查 manifest 和触发时机
iOS 不光看字段,还卡两个硬条件:manifest 配置错误或播放未由用户手势触发,都会导致锁屏控件不出现,哪怕字段全对。
- manifest.json 中
app-plus→distribute→ios节点下必须有:"UIBackgroundModes": ["audio"],写成字符串"audio"或漏掉数组括号都会失效 - 首次
play()必须在 button click、touchend 等用户交互回调里执行,放在onLoad或定时器里会被 Safari/微信拦截,无声无提示 - 真机测试前务必确认云打包日志含
background audio enabled,否则配置没生效,改代码也没用
微信小程序锁屏信息不更新?全局单例 + 事件绑定顺序很关键
小程序平台下,uni.getBackgroundAudioManager() 是单例,但很多项目在页面 onLoad 里反复获取并重绑事件,导致锁屏信息滞后或错乱。
- 必须在
App.vue的onLaunch中初始化一次,并挂到uni.$bgm上,所有页面复用该实例 - 元数据设置(
title/singer)和事件监听(onPlay/onTimeUpdate)必须在play()之前完成,顺序颠倒则信息不注册 - 切后台后
onStop可能不触发,改用onPause+onPlay组合监听状态,避免锁屏界面残留旧信息


















