微信小程序:音频后台播放:getBackgroundAudioManager 问题,是否有bug?

本文介绍了如何在微信小程序中实现悬浮后台播放音频功能。首先,需要在app.json中启用后台播放配置,添加'requiredBackgroundModes'字段。接着,通过getBackgroundAudioManager()获取后台音频管理器,并设置音频属性,注意只能播放网络音频链接。在实现过程中,务必避免再次调用play(),否则可能导致控制功能失效。此外,文章还提到了测试音频链接资源的获取方式及监听播放状态的方法。

问题:最近需要用到微信小程序的悬浮后台播放功能,怎么去实现?

解决:

1.启用后台播放配置

app.json文件添加配置:

"requiredBackgroundModes" : ["audio"],

配置图片:

2.添加调用代码

  • 注意:getBackgroundAudioManager() 目前只能够播放网络音频链接!不可以播放本地文件、还有工程内的音频文件!
  • 想要实现工程内的音频文件后台播放,目前小程序是不支持的,毕竟它就是一个小程序而已,没有App那么强大的功能。不知道后续是否可以支持。
  • 测试音频链接,可以去网友的网站,获取音乐平台的音频直链:https://music.liuzhijin.cn/
  clkme:function(){
    const backgroundAudioManager = wx.getBackgroundAudioManager()
    backgroundAudioManager.title = '折子戏';
    backgroundAudioManager.epname = '折子戏';
    backgroundAudioManager.singer = '许巍';
    backgroundAudioManager.coverImgUrl = '';
    // 设置了 src 之后会自动播放
    backgroundAudioManager.src = 'http://music.163.com/song/media/outer/url?id=97325.mp3';
    backgroundAudioManager.play();//不要加这个!!!设置了SRC即可播放,不要再行play()
    //播放开始触发onEnded方法
    backgroundAudioManager.onPlay(() => {
          console.log("音乐播放开始");
    })
    //播放结束触发onEnded方法
    backgroundAudioManager.onEnded(() => {
          console.log("音乐播放结束");
    })
    backgroundAudioManager.onError(() => {
        console.log("音乐播放错误");
    })
  },

3.特别注意一个问题

  • getBackgroundAudioManager 一旦设置了src就开始播放了,不要再次调用play(),否则会导致一些问题!

  • 问题:比如你的seek()不管用!你的pause()不管用!

这个点还是有点坑爹的,我们通常不会注意这个问题,今天调试代码老是出问题,最后想是不是src赋值后再次play()的问题呢?

调整了代码以后,pause、play的功能立马正常。

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值