官方文档和论坛都没有写这个问题的解决办法,最后经过实验发现,需要在InnerAudioContext.onTimeUpdate调用以前,先调用innerAudioContext.onPlay,并且在innerAudioContext.onPlay的回调函数中访问innerAudioContext.duration属性
Page({ /** * 页面的初始数据 */ data: { msg:"", msg2:"", audioSrc:'' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { const innerAudioContext = wx.createInnerAudioContext() console.log(innerAudioContext) // innerAudioContext.loop = true; var that = this; innerAudioContext.src = this.data.audioSrc; innerAudioContext.onPlay(function(res){ // 一定要访问duration 否则onTimeUpdate不会触发 var duration = innerAudioContext.duration; }) innerAudioContext.onTimeUpdate(function(res){ var currentTime = innerAudioContext.currentTime * 1000 that.setData({ msg: innerAudioContext.duration, msg2: innerAudioContext.currentTime * 1000 }); }) innerAudioContext.play() }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }})













