微信小程序音频后台播放功能

微信小程序在手机息屏后依旧能播放音频,需要使用 wx.getBackgroundAudioManager() 方法创建后台音乐播放器,并将音乐播放任务交给这个后台播放器。

具体实现步骤如下:

小程序页面中,使用 wx.getBackgroundAudioManager() 方法创建后台音乐播放器实例。

复制代码
const backgroundAudioManager = wx.getBackgroundAudioManager();

设置音乐播放器的 src 属性为音频文件的地址,并调用 play() 方法开始播放音乐。

复制代码
backgroundAudioManager.src = '音频文件地址';
backgroundAudioManager.title = '音频标题';
backgroundAudioManager.coverImgUrl = '音频封面地址';
backgroundAudioManager.play();

在播放过程中,如果用户将手机屏幕锁定或者切换到其他应用程序,音乐播放器会自动转为后台播放状态。

如果需要在后台播放音频时显示通知栏信息、响应用户的操作等功能,还需要在小程序的 app.json 文件中进行设置,如下所示:

复制代码
{
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "小程序标题",
    "navigationBarTextStyle": "black"
  },
  "requiredBackgroundModes": ["audio"]
}

设置 requiredBackgroundModes["audio"],表示需要在后台播放音频时在通知栏显示音乐播放的信息。

以下是实现该功能的示例代码:

1. 在小程序的页面中引入背景音频管理器:

复制代码
const backgroundAudioManager = wx.getBackgroundAudioManager();

2. 设置音频的播放地址和标题:

复制代码
backgroundAudioManager.title = '音频标题';
backgroundAudioManager.src = '音频地址';

3. 监听音频播放事件,更新进度条和时长:

复制代码
backgroundAudioManager.onPlay(() => {
  // 音频开始播放时触发的事件
  // 更新进度条和时长的状态
});

backgroundAudioManager.onTimeUpdate(() => {
  // 音频播放进度更新时触发的事件
  // 更新进度条和时长的状态
});

4. 在页面中显示进度条和时长:

复制代码
<view>当前播放进度:{{currentTime}}</view>
<view>总时长:{{duration}}</view>

5. 在页面的生命周期函数中监听音频的播放状态:

复制代码
onShow: function () {
  backgroundAudioManager.onPlay(() => {
    // 音频开始播放时触发的事件
    // 更新进度条和时长的状态
  });

  backgroundAudioManager.onTimeUpdate(() => {
    // 音频播放进度更新时触发的事件
    // 更新进度条和时长的状态
  });
},

onHide: function () {
  // 页面隐藏时暂停音频的播放
  backgroundAudioManager.pause();
}

效果:

以上代码仅为示例,具体实现方式可能根据你的需求有所差异。你可以根据自己的实际情况进行调整和完善

相关推荐
潜创微科技6 小时前
IT9201+IT66021:便携 KVM 一站式方案,音视控三合一免驱即插即用
嵌入式硬件·音视频
博客zhu虎康8 小时前
小程序:实现下拉刷新和上拉加载更多功能
小程序
音视频牛哥9 小时前
大牛直播SDK(SmartMediaKit)鸿蒙NEXT RTSP/RTMP低延迟播放器集成与实践指南
音视频·harmonyos·大牛直播sdk·鸿蒙rtmp播放器·鸿蒙rtsp播放器·鸿蒙next rtsp播放器·鸿蒙next rtmp播放器
2501_9159090612 小时前
全面解析前端开发中常用的浏览器调试工具及其使用场景
android·ios·小程序·https·uni-app·iphone·webview
时空自由民.14 小时前
优化ESP32 ADF 音频问题
音视频
云起SAAS15 小时前
企业名片画册相册微信小程序源码 | 管理后台+后端 | 含产品展示资讯视频
微信小程序·广告联盟·企业名片画册相册微信小程序源码
王者鳜錸17 小时前
企业解决方案十一-各类小程序定制开发
图像处理·人工智能·小程序·大模型·语音处理·定制开发
px不是xp17 小时前
Docker部署Qdrant向量数据库,初始化向量数据库,重构RAG逻辑
数据库·docker·微信小程序·重构·qdrant
互联科技报17 小时前
商城小程序选择哪家平台比较好?预算有限也能选对!
大数据·小程序
ZC跨境爬虫17 小时前
跟着 MDN 学 HTML day_41:(DOMParser 接口详解)
前端·javascript·ui·html·音视频