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
看下支持的格式
支持格式
格式 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 和播放。
可能的原因及解决方向:
- 音频链接或服务器问题:部分音频链接可能存在跨域、响应头缺失或服务器不稳定,导致加载失败。建议检查网络请求状态,在
onError回调中捕获错误信息:this.audio.onError((res) => { console.log('音频加载失败', res); });

