uni-app 使用uni.createInnerAudioContext()组件播放MP3时报错 错误信息为{"errMsg":"MediaError","errCode":-5}

uni-app 使用uni.createInnerAudioContext()组件播放MP3时报错 错误信息为{“errMsg”:“MediaError”,“errCode”:-5}

项目 信息
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 win10
HBuilderX类型 正式
HBuilderX版本号 3.99
手机系统 iOS
手机系统版本号 iOS 17
手机厂商 苹果
手机机型 iphone12
页面类型 vue
vue版本 vue3
打包方式 离线
项目创建方式 HBuilderX

示例代码:

d.player = uni.createInnerAudioContext();
d.player.autoplay = true;
d.player.src = annex.path; //服务器地址
d.player.onPlay(() => {
console.log('play sound');
});
d.player.onStop(()=>{
annex.status=""
})
d.player.onEnded(() => {
d.player.stop();
})

d.player.onError((res: any) => {  
  console.log(res);  
  d.player.stop();  

  uni.showToast({  
    icon:"none",  
    title:JSON.stringify(res)  
  })  
  // 多次会调用播放新的文件时,提前销毁实例,可避免-99错误  
});

操作步骤:

预期结果:

正常播放MP3

实际结果:

无法播放
错误信息:{“errMsg”:“MediaError”,“errCode”:-5}

bug描述:

使用uni.createInnerAudioContext()组件播放MP3的时候报错,错误信息如下
{“errMsg”:“MediaError”,“errCode”:-5}


更多关于uni-app 使用uni.createInnerAudioContext()组件播放MP3时报错 错误信息为{"errMsg":"MediaError","errCode":-5}的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 使用uni.createInnerAudioContext()组件播放MP3时报错 错误信息为{"errMsg":"MediaError","errCode":-5}的实战教程也可以访问 https://www.itying.com/category-93-b0.html


针对您在使用uni-app的uni.createInnerAudioContext()组件播放MP3时遇到的错误 {"errMsg":"MediaError","errCode":-5},这通常指示着媒体文件播放时遇到了问题。错误代码 -5 在不同的平台或框架中可能有不同的含义,但在uni-app的上下文中,它通常与音频文件无法加载或解码有关。

以下是一些可能的解决方案和代码示例,帮助您排查和修复此问题:

1. 检查音频文件路径和格式

确保您提供的音频文件路径正确,且文件格式是支持的。uni-app通常支持MP3格式,但也要确保文件未损坏且编码正确。

const innerAudioContext = uni.createInnerAudioContext();
innerAudioContext.src = 'https://example.com/path/to/your/audiofile.mp3';
innerAudioContext.onError((err) => {
    console.error('Audio error:', err.errMsg, err.errCode);
});
innerAudioContext.play();

2. 捕获并处理错误

通过监听onError事件,您可以获取更多关于错误的信息,并据此进行进一步处理。

innerAudioContext.onError((err) => {
    if (err.errCode === -5) {
        uni.showToast({
            title: '音频文件加载失败,请检查文件路径或格式',
            icon: 'none'
        });
    }
});

3. 尝试使用绝对路径或相对路径

有时路径问题可能导致加载失败。尝试使用绝对路径或相对于项目根目录的路径。

// 使用相对路径
innerAudioContext.src = '/static/audio/audiofile.mp3';

// 或者使用绝对路径(如果服务器支持)
innerAudioContext.src = 'https://yourdomain.com/static/audio/audiofile.mp3';

4. 检查服务器CORS设置

如果您的音频文件托管在不同的域上,确保服务器配置了正确的CORS(跨源资源共享)策略,允许您的uni-app应用访问这些资源。

5. 尝试其他音频文件

为了排除文件本身的问题,尝试播放其他已知可正常工作的MP3文件。

innerAudioContext.src = 'https://example.com/another/audiofile.mp3';

通过上述步骤,您应该能够定位问题的根源,并采取相应的措施解决它。如果问题依旧存在,建议检查uni-app的官方文档或社区论坛,看是否有其他开发者遇到并解决了类似的问题。

回到顶部