小程序wx.createInnerAudioContext,获取不到时长问题
最近在开发小程序中,需要用到音频播放功能。但在初始化时,使用InnerAudioContext.duration
获取不到音频的时长。
Page({
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
// 创建一个audio
const myAudio = wx.createInnerAudioContext();
// 设置audio的资源地址
myAudio.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?gu;
// 直接获取时长,获取到的为0
console.log(myAudio.duration); // 0
// 延时获取时长,获取到的还是0
setTimeout(()=> {
console.log(myAudio.duration); // 0
}, 1000);
}
})
解决方法
使用innerAudioContext.onCanplay()
监听音频进入可以播放状态。
Page({
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
// 创建一个audio
const myAudio = wx.createInnerAudioContext();
// 设置audio的资源地址
myAudio.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?gu;
// 监听音频进入可以播放状态的事件
myAudio.onCanplay(()=> {
// 必须。可以当做是初始化时长
myAudio.duration;
// 必须。不然也获取不到时长
setTimeout(() => {
console.log(myAudio.duration); // 401.475918
}, 1000)
})
}
})
本文转载于:猿2048➨https://www.mk2048.com/blog/blog.php?id=hicibj1j1hj