首先需要全局设置ios静音模式下播放声音,当然此方法也可以设置其他参数,[微信开发文档地址]

wx.setInnerAudioOption(Object object)

基础库 2.3.0 开始支持,低版本需做兼容处理

本接口从基础库版本 2.10.0 起支持在小程序插件中使用

设置 InnerAudioContext 的播放选项。设置之后对当前小程序全局生效。

参数

Object object

属性类型默认值必填说明
mixWithOtherbooleantrue是否与其他音频混播,设置为 true 之后,不会终止其他应用或微信内的音乐
obeyMuteSwitchbooleantrue(仅在 iOS 生效)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音
speakerOnbooleantruetrue 代表用扬声器播放,false 代表听筒播放,默认值为 true。
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)

 

注意:千万不要用innerAudioContext.obeyMuteSwitch = false;,2.3.0 版本开始此参数不生效

注意:千万不要用innerAudioContext.obeyMuteSwitch = false;,2.3.0 版本开始此参数不生效

注意:千万不要用innerAudioContext.obeyMuteSwitch = false;,2.3.0 版本开始此参数不生效

在app.js中

onLaunch() {
   wx.setInnerAudioOption({
      obeyMuteSwitch: false,
    })
}

为防止创建多个音频播放,我这里采用全局创建的方式,通过停止、更换播放地址、播放等进行重新播放

const innerAudioContext = wx.createInnerAudioContext() //创建全局音频管理器
//在页面显示的时候写入对音频的播放进行监听
onShow(){
   //监听播报的事件
    innerAudioContext.onPlay(() => {
      console.log('开始播放');
    })
    //监听播报出错的事件
    innerAudioContext.onError(() => {
      console.log("监听音频播放出错事件")
    })
    innerAudioContext.onEnded(() => {
      console.log("监听播放结束事件")  
      //这里可以写入一些播放结束后的逻辑
    })
}

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐