小程序
小游戏
企业微信
微信支付
扫描小程序码分享
this.innerAudioContext.src = data.sound;
let duration = this.innerAudioContext.duration;
console.log(duration)
输出来的是0
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
还是不兼容各种手机,安卓的 就获取不到 时长
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
需要先写这个函数:innerAudioContext.onPlay(function callback),再调用InnerAudioContext.onTimeUpdate(function callback),然后在这个函数中获取音频时长即可。我试了,这个方法可以
innerAudioContext.onTimeUpdate(() => {
console.log(innerAudioContext.duration);
})
setTimeout(()=>{
console.log(innerAudioContext.duration)
},1000)
很多时候需求都是在不播放音频的情况下获取音频时长的,请问现在微信官方有解决这块的api吗?官方可否回复一下
很多时候需求都是在不播放音频的情况下获取音频时长的,这个微信的api暂时好像没办法做到
我是这样的 : getDuration(){
that.innerAudioContext.play();
that.innerAudioContext.onPlay(()=>{
that.innerAudioContext.onTimeUpdate(()=>{
that.duration = 0
let duration2 = that.innerAudioContext.duration || that.duration
if (duration2 && duration2 != duration) {
that.duration = duration2
console.log(that.duration)
that.innerAudioContext.stop();
}
},
因为onTimeUpdate事件会实时促发只要判断that.innerAudioContext.duration是否有值就行,优化可以加 if (duration2 && duration2 != that.duration) {}防止性能消耗
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
官方示例,自己试一下
const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'
innerAudioContext.onPlay(() => {
console.log('开始播放')
innerAudioContext.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
我也遇到这个问题,我在canPlay事件的时候打印duration也是0
setTimeout 可以拿到
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
还是不兼容各种手机,安卓的 就获取不到 时长
需要先写这个函数:innerAudioContext.onPlay(function callback),再调用InnerAudioContext.onTimeUpdate(function callback),然后在这个函数中获取音频时长即可。我试了,这个方法可以
innerAudioContext.onTimeUpdate(() => {
console.log(innerAudioContext.duration);
})
setTimeout(()=>{
console.log(innerAudioContext.duration)
},1000)
很多时候需求都是在不播放音频的情况下获取音频时长的,请问现在微信官方有解决这块的api吗?官方可否回复一下
很多时候需求都是在不播放音频的情况下获取音频时长的,这个微信的api暂时好像没办法做到
我是这样的 : getDuration(){
that.innerAudioContext.play();
that.innerAudioContext.onPlay(()=>{
that.innerAudioContext.onTimeUpdate(()=>{
that.duration = 0
let duration2 = that.innerAudioContext.duration || that.duration
if (duration2 && duration2 != duration) {
that.duration = duration2
console.log(that.duration)
that.innerAudioContext.stop();
}
})
})
},
因为onTimeUpdate事件会实时促发只要判断that.innerAudioContext.duration是否有值就行,优化可以加 if (duration2 && duration2 != that.duration) {}防止性能消耗
麻烦提供能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)
const innerAudioContext = wx.createInnerAudioContext()
innerAudioContext.autoplay = true
innerAudioContext.src = 'http://ws.stream.qqmusic.qq.com/M500001VfvsJ21xFqb.mp3?guid=ffffffff82def4af4b12b3cd9337d5e7&uin=346897220&vkey=6292F51E1E384E061FF02C31F716658E5C81F5594D561F2E88B854E81CAAB7806D5E4F103E55D33C16F3FAC506D1AB172DE8600B37E43FAD&fromtag=46'
console.log(innerAudioContext.duration)
innerAudioContext.onPlay(() => {
console.log('开始播放')
})
innerAudioContext.onError((res) => {
console.log(res.errMsg)
console.log(res.errCode)
})
我也遇到这个问题,我在canPlay事件的时候打印duration也是0
setTimeout 可以拿到