uniapp 后台音乐
实现后台音乐播放的方法
在 uniapp 中实现后台音乐播放功能,需要使用 uni.getBackgroundAudioManager API。该 API 允许应用在后台继续播放音频,即使应用被切换到后台或屏幕关闭。
初始化后台音频管理器
const backgroundAudioManager = uni.getBackgroundAudioManager();
backgroundAudioManager.title = '音乐标题';
backgroundAudioManager.singer = '歌手名';
backgroundAudioManager.coverImgUrl = 'https://example.com/cover.jpg';
backgroundAudioManager.src = 'https://example.com/music.mp3';
控制音乐播放
// 播放音乐
backgroundAudioManager.play();
// 暂停音乐
backgroundAudioManager.pause();
// 停止音乐
backgroundAudioManager.stop();
// 跳转到指定位置(单位:秒)
backgroundAudioManager.seek(30);
监听音乐状态
backgroundAudioManager.onPlay(() => {
console.log('音乐开始播放');
});
backgroundAudioManager.onPause(() => {
console.log('音乐暂停');
});
backgroundAudioManager.onStop(() => {
console.log('音乐停止');
});
backgroundAudioManager.onEnded(() => {
console.log('音乐播放结束');
});
backgroundAudioManager.onTimeUpdate((res) => {
console.log('当前播放位置', res.currentTime);
});
注意事项
- 需要在
manifest.json中配置后台运行权限:
{
"app-plus": {
"runmode": "liberate"
}
}
- iOS 平台需要额外配置音频会话模式:
{
"app-plus": {
"distribute": {
"ios": {
"UIBackgroundModes": ["audio"]
}
}
}
}
- 安卓平台需要确保应用拥有后台运行权限,避免系统杀死应用进程。
优化建议
- 使用本地缓存存储音乐播放进度,提升用户体验。
- 合理处理网络异常情况,确保音乐播放的稳定性。
- 对于长时间后台播放,建议使用 Service Worker 技术保持应用活跃。
通过以上方法可以实现 uniapp 应用的后台音乐播放功能,并保证在各种场景下的稳定运行。







