首先需要全局设置ios静音模式下播放声音,当然此方法也可以设置其他参数,[微信开发文档地址]
wx.setInnerAudioOption(Object object)
基础库 2.3.0 开始支持,低版本需做兼容处理。
本接口从基础库版本 2.10.0 起支持在小程序插件中使用
设置 InnerAudioContext 的播放选项。设置之后对当前小程序全局生效。
参数
Object object
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
mixWithOther | boolean | true | 否 | 是否与其他音频混播,设置为 true 之后,不会终止其他应用或微信内的音乐 |
obeyMuteSwitch | boolean | true | 否 | (仅在 iOS 生效)是否遵循静音开关,设置为 false 之后,即使是在静音模式下,也能播放声音 |
speakerOn | boolean | true | 否 | true 代表用扬声器播放,false 代表听筒播放,默认值为 true。 |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
注意:千万不要用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("监听播放结束事件")
//这里可以写入一些播放结束后的逻辑
})
}