废话不多说直接上代码,亲测可用
Page({
data: {
isPlay: false,
},
onLoad() {
this.audioPlay()
},
//创建语音示例进行播放
createAudio(e) {
//创建内部 audio 上下文 InnerAudioContext 对象。
this.innerAudioContext = wx.createInnerAudioContext();
// 发生错误触发
this.innerAudioContext.onError(function (res) {})
//设置音频地址
this.innerAudioContext.src = "https://www.cambridgeenglish.org/images/153149-movers-sample-listening-test-vol2.mp3"
},
//播放
audioPlay() {
this.createAudio();
//播放音频
this.innerAudioContext.play();
//设置当前播放按钮状态切换
this.setData({
isPlay: true
})
},
// 停止播放
audioPause() {
//设置当前播放按钮状态切换
this.setData({
isPlay: false
})
//暂停音频
this.innerAudioContext.pause();
},
// 结束音频
end: function (e) {
//暂停音频
this.innerAudioContext.pause();
},
onHide: function () {
// 结束音频
this.end();
},
onUnload: function () {
// 结束音频
this.end();
},
})
也可以直接封装在工具函数中进行播放
//创建内部 audio 上下文 InnerAudioContext 对象,音频对象放在顶部,防止多个音频一块播放
const innerAudioContext = wx.createInnerAudioContext();
module.exports = {
// 音频播放
audioPlay(url = "https://www.cambridgeenglish.org/images/153149-movers-sample-listening-test-vol2.mp3") {
innerAudioContext && innerAudioContext.pause();
// 发生错误触发
innerAudioContext.onError(function (res) {})
//设置音频地址
innerAudioContext.src = url;
innerAudioContext.play();
}
}```