creatAudio() {
this.innerAudioContext = uni.createInnerAudioContext();
this.innerAudioContext.src = this.recordPath;
this.innerAudioContext.title = '音频';
this.innerAudioContext.autoplay = false;
this.innerAudioContext.obeyMuteSwitch = false;
this.innerAudioContext.onPlay(() => {
// 播放监听
console.log('播放!');
});
this.innerAudioContext.onPause(() => {
// 暂停监听
console.log('暂停播放!');
});
this.innerAudioContext.onSeeking((res)=>{
console.log("进行跳转", res);
})
this.innerAudioContext.onSeeked((res) => {
// 监听结束跳转事件callback(无效)
console.log("结束跳转", res);
});
this.innerAudioContext.onEnded(() => {
// 结束播放监听
console.log('播放结束!');
});
this.innerAudioContext.onTimeUpdate(() => {
const { currentTime , duration ,buffered} = this.innerAudioContext;
//进度条最大值
this.sliderMax =duration;
console.log(duration,"音频时长")//就是这个时长的bug
console.log(buffered,"音频缓冲")
});
},
- 发布:2021-02-01 17:54
- 更新:2021-02-02 11:17
- 阅读:2142
产品分类: uniapp/小程序/微信
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
HBuilderX类型: 正式
HBuilderX版本号: 3.0.7
第三方开发者工具版本号: 1.05.2101181
基础库版本号: 无
项目创建方式: HBuilderX
示例代码:
操作步骤:
下面两个录音文件每个录音文件时长是5分钟,使用const { duration } = this.innerAudioContext;获取时长经常会出现1分40秒;开始我以为是没有加载完,但是多次尝试后发现duration 不会更新。
而我手动赋值进度条长度,音频又可完整播放,但不可快进,seek不触发,多次调试后发现是音频时长获取的不对。
下面两个录音文件每个录音文件时长是5分钟,使用const { duration } = this.innerAudioContext;获取时长经常会出现1分40秒;开始我以为是没有加载完,但是多次尝试后发现duration 不会更新。
而我手动赋值进度条长度,音频又可完整播放,但不可快进,seek不触发,多次调试后发现是音频时长获取的不对。
预期结果:
获取每个音频的长度,并可以进行快进等操作
获取每个音频的长度,并可以进行快进等操作
实际结果:
在h5,微信开发者工具上都正常,到真机上就经常获取不到完整音频的时长。
在h5,微信开发者工具上都正常,到真机上就经常获取不到完整音频的时长。
bug描述:
录音文件:
https://static.quhouse.com/audio/6103-359339075946911-20210129121317-209600.mp3
https://static.quhouse.com/audio/6103-359339075946911-20210129122818-209600.mp3