uni-app audio组件有时通过链接无法获取音频

uni-app audio组件有时通过链接无法获取音频

项目信息 详情
产品分类 uniapp/App
PC开发环境 Windows
PC开发环境版本 windows10
HBuilderX类型 正式
HBuilderX版本 3.3.2
手机系统 Android
手机系统版本 Android 10
手机厂商 华为
手机机型 mi8
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

onLoad(query) {  
    console.log(query)  
    const _that = this  
    this.audioSrc = query.url  
    this.audio = uni.createInnerAudioContext();  

},  
onReady() {  
    const _that = this  
    this.audio.src = this.audioSrc;  
    this.audio.onPlay(() => {  
        this.audiotime()  
        this.audioState = false  

    });  
    this.audio.onPause(()=>{  
        this.audioState = true  

    })  
    this.audio.onCanplay(()=>{  
        this.audioLength = this.audio.duration  
    })  

},  

onUnload() {  
    this.audio.destroy()  
},

操作步骤:

请查看附件

预期结果:

可以每次都拿到视频

实际结果:

有时候可以拿到 有时候不可以 安卓是这样 ios没有遇到过

bug描述:

audio有时候获取不到音频,在附件中如果下面显示进度条则是可以播放,如果不显示则是无法播放,如需要音频链接可以联系我


更多关于uni-app audio组件有时通过链接无法获取音频的实战教程也可以访问 https://www.itying.com/category-93-b0.html

12 回复

看下支持的格式
支持格式

格式 iOS Android
flac x √
m4a √ √
ogg x √
ape x √
amr x √
wma x √
wav √ √
mp3 √ √
mp4 x √
aac √ √
aiff √ x
caf √ x

更多关于uni-app audio组件有时通过链接无法获取音频的实战教程也可以访问 https://www.itying.com/category-93-b0.html


格式没问题的 就是偶尔有一次 听同一个音频会出现音频播放不了的情况 过一会onerror中报错 code : -99

回复 篮孓: {“errMsg”:“MediaError”,“errCode”:-99}

回复 篮孓: 发音频文件

回复 FullStack: 我私信发您

回复 篮孓: 下载,再播放看看

回复 FullStack: 好的我去试试

回复 FullStack: 我把音频地址改为本地地址之后报错{“errMsg”:“MediaError”,“errCode”:-5}

回复 篮孓: const innerAudioContext = uni.createInnerAudioContext(); innerAudioContext.autoplay = true; innerAudioContext.src = ‘https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3’; innerAudioContext.onPlay(() => { console.log(‘开始播放’); }); innerAudioContext.onError((res) => { console.log(res.errMsg); console.log(res.errCode); });

官方示列呢?

回复 FullStack: 一样

这个问题通常与音频链接的稳定性、网络环境或音频格式兼容性有关。从你的代码来看,onReady 中设置 src 并监听 onCanplay 是标准做法,但偶尔无法触发 onCanplay 事件,导致无法获取 duration 和播放。

可能的原因及解决方向:

  1. 音频链接或服务器问题:部分音频链接可能存在跨域、响应头缺失或服务器不稳定,导致加载失败。建议检查网络请求状态,在 onError 回调中捕获错误信息:
    this.audio.onError((res) => {
      console.log('音频加载失败', res);
    });
回到顶部