對于野生程式員的我來講,每次弄出一個東西,都會記錄分享一下,需求不一致,所以使用的音頻播放方式不一樣,記錄一下用js進行播放音頻的方法:
首先需要全域設定ios靜音模式下播放聲音,當然此方法也可以設定其他引數,[微信開發檔案地址]
(https://developers.weixin.qq.com/miniprogram/dev/api/media/audio/wx.setInnerAudioOption.html)
注意:千萬不要用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,
})
}
在page.js中,為防止創建多個音頻播放,我這里采用全域創建的方式,通過停止、更換播放地址、播放等進行重新播放api地址
const innerAudioContext = wx.createInnerAudioContext() //創建全域音頻管理器
//在頁面顯示的時候寫入對音頻的播放進行監聽
onShow(){
//監聽播報的事件
innerAudioContext.onPlay(() => {
console.log('開始播放');
})
//監聽播報出錯的事件
innerAudioContext.onError(() => {
console.log("監聽音頻播放出錯事件")
})
innerAudioContext.onEnded(() => {
console.log("監聽播放結束事件")
//這里可以寫入一些播放結束后的邏輯
})
}
//請求介面獲得播放音頻地址
quest:function(){
wx.request({
url: 'test.php', //僅為示例,并非真實的介面地址
method:"POST",
data: {
x: '',//請求引數,僅為示例
},
header: {
'content-type': 'application/json' // 默認值
},
success (res) {
console.log("音頻播放地址是:",res.data.data)
innerAudioContext.src = res.data.data //設定音頻地址
innerAudioContext.play(); //播放音頻
}
})
}
新手出道,各位大佬發現問題隨時指教,感謝!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/257128.html
標籤:其他
上一篇:【Android studio】布局檔案中控制元件id不能在MainActivity檔案中呼叫(Kotlinx報錯)
