uni-app怎么实现App端的后台运行音乐播放控制中心

畫卷琴夢

畫卷琴夢

2026-07-15

253人浏览

原创

app端必须用uni.getbackgroundaudiomanager(),它是ios/android注册系统音频会话的唯一通道;需配置manifest.json中uibackgroundmodes:["audio"](ios)和wake_lock权限(android),设置title/singer/coverimgurl后调用play(),并重新云打包生效。

uni-app怎么实现app端的后台运行音乐播放控制中心

App端必须用 uni.getBackgroundAudioManager(),不是可选而是强制路径

微信小程序能用 uni.getBackgroundAudioManager() 实现锁屏控制,App 端同样必须走这条路——它才是 iOS/Android 原生层注册音频会话的唯一通道。别被“App 也支持 uni.createInnerAudioContext()”误导,后者在锁屏后大概率被系统静音或销毁,尤其 iOS 上几乎必然中断。

常见错误现象:调用 play() 后前台正常,一锁屏就无声;或锁屏界面完全不显示歌曲信息。根本原因就是用了页面级音频上下文,没走系统音频会话入口。

  • iOS 必须搭配 UIBackgroundModes: ["audio"] 才有后台播放资格,否则连会话都注册不上
  • Android 虽不强制报错,但没加 WAKE_LOCK 权限,华为、小米等机型锁屏几秒后自动暂停
  • uni.getBackgroundAudioManager() 在 H5 端完全无效,调用无报错但也不起作用,务必用条件编译隔离

manifest.json 配置必须精确到字段层级和转义格式

很多项目卡在这一步:写了配置却不起作用,以为是代码问题,其实是 JSON 写错了位置或格式不对。这个配置不是勾选项,必须手动编辑源码视图,且 iOS 和 Android 不能混写、不能漏项。

jQuery弹幕倒计时音乐特效
jQuery弹幕倒计时音乐特效

jQuery弹幕倒计时音乐特效是一款基于jQuery跟HTML5制作的2020年除夕倒计时,发送文字弹幕和在线音乐播放,庆祝主题页面特效。

下载
  • iOS 配置要嵌套在 app-plus → distribute → ios 下,完整写成:"ios": {"UIBackgroundModes": ["audio"]},注意是数组,"audio" 不能拼错、不能带空格
  • Android 权限必须写在 app-plus → distribute → android → permissions 下,正确写法是:"permissions": ["<uses-permission android:name='\"android.permission.WAKE_LOCK\"'></uses-permission>"],XML 标签必须转义且闭合
  • 改完 manifest.json 后必须重新云打包,热更新和本地调试不会生效;真机测试前确认打包日志里有类似 background audio enabled 的提示

锁屏界面信息不显示?titlesingercoverImgUrl 缺一不可

iOS 锁屏界面只认这三个字段,缺任意一个,系统就当“无媒体信息”处理,直接不显示控制条。Android 虽依赖原生 MediaSession,但这三项仍是基础门槛。

  • coverImgUrl 必须是本地绝对路径(如 /static/cover.jpg),网络地址在 App 端无效
  • titlesinger 至少填两个,否则 iOS 锁屏只显示“未知”
  • 封面图尺寸建议 ≥ 300×300,否则 Android 微信通知栏缩略图模糊或不显示(注意:这是微信小程序要求,App 端虽无此限制,但统一按高标准设更稳妥)
  • 设置元数据后必须显式调用 manager.play(),仅赋值 src 不会触发加载或播放

监听状态变化只能靠 manager 自身事件,别信 onHide/onShow

页面生命周期钩子(如 onHideonShow)和音频实际状态不同步。用户从锁屏界面点播放键,onShow 可能还没触发,但音频已经播了——真正反映操作的是 manager 自身事件。

  • onPlayonPauseonStop 等必须在获取实例后立即绑定,且只能绑定一次,重复绑定会导致多次触发
  • onTimeUpdate 频率约 250ms 一次,不适合做高精度拖动,仅适合更新进度条或歌词同步
  • 不要在 onHide 里手动 pause(),用户可能正通过锁屏控件操作;应以 manager 状态为准,监听 onPause 后再做 UI 同步
真正容易被忽略的点是:iOS 要求音频会话初始化必须发生在用户交互之后,哪怕是在 onLaunch 里提前取了实例,play() 也得等用户点击按钮才执行;否则部分 iOS 版本会静音且无任何报错。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

音乐 uni-app

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1111

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

2262

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

2132

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

2322

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

336

5

Selenium WebDriver元素定位与页面操作教程
Selenium WebDriver元素定位与页面操作教程

本专题整理Selenium WebDriver元素定位、XPath、CSS Selector、等待机制、窗口切换、Frame处理、Alert弹窗、Cookie操作和文件上传等核心用法。

2026.08.05

0

26

Selenium Grid分布式测试与并行执行教程
Selenium Grid分布式测试与并行执行教程

本专题整理Selenium Grid架构、远程WebDriver、并行测试、Docker部署、Kubernetes动态Grid、浏览器矩阵和测试环境扩展方法,适合进阶自动化测试团队使用。

2026.08.05

0

18

Selenium常见报错排查与自动化测试稳定性
Selenium常见报错排查与自动化测试稳定性

本专题整理Selenium常见报错、驱动版本问题、元素找不到、点击失败、等待超时、浏览器闪退、脚本不稳定和测试用例维护方法。

2026.08.05

0

17

墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

11

21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
uni-app从入门到实战教程
uni-app从入门到实战教程

共0课时 | 0人学习

uni-app x harmony开发指南
uni-app x harmony开发指南

共0课时 | 0人学习

uni-app鸿蒙运行和发行
uni-app鸿蒙运行和发行

共0课时 | 0人学习