当前位置: 首页 > news >正文

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

微信小程序在手机息屏后依旧能播放音频,需要使用 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();
}

效果:

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

http://www.lryc.cn/news/165062.html

相关文章:

  • NotePad——xml格式化插件xml tools在线安装+离线安装
  • 图书管理系统 数据结构先导课暨C语言大作业复习 | JorbanS
  • python 爬虫的开发环境配置
  • 技术架构图是什么?和业务架构图的区别是什么?
  • 数据增强
  • 【Unity】2D 对话模块的实现
  • laravel安装初步使用学习 composer安装
  • 【VS插件】VS code上的Remote - SSH
  • TensorFlow 02(张量)
  • 513. 找树左下角的值
  • 量化:基于支持向量机的择时策略
  • 成功解决Selenium 中116版本的chromedriver找不到问题
  • PYQT常用组件--方法汇总
  • Linux系统编程(一):文件 I/O
  • OSM+three.js打造3D城市
  • 02JVM_垃圾回收GC
  • ARM Linux DIY(八)USB 调试
  • 编程小白的自学笔记十四(python办公自动化创建、复制、移动文件和文件夹)
  • MySQL使用Xtrabackup备份到AWS存储桶
  • (高阶)Redis 7 第11讲 BIGKEY 优化篇
  • 一阶差分和二阶差分概念及其举例
  • 使用自定义注解和SpringAOP捕获Service层异常,并处理自定义异常
  • Kotlin(六) 类
  • 蓝桥杯官网练习题(灌溉)
  • 数据结构:树的概念和结构
  • 【GIS】栅格转面报错:ERROR 000864输入栅格: 输入不在定义的属性域内。 ERROR 000863: 无效的 GP 数据类型
  • 32 WEB漏洞-文件操作之文件下载读取全解
  • Linux之history、tab、alias、命令执行顺序、管道符以及exit
  • vcomp100.dll丢失怎样修复?5个靠谱的修复方法分享
  • Vue3自定义指令(directive)