uniapp 播放音频出现-99错误怎么解决?

我在使用uniapp开发时遇到了播放音频报错的问题,控制台显示错误代码-99。尝试播放本地和网络音频文件都会出现这个错误,但相同的音频文件在其他平台上可以正常播放。请问这个错误是什么原因导致的?应该如何解决?我的开发环境是HBuilder X最新版,测试平台是安卓真机。

2 回复

检查音频文件路径是否正确,确保文件存在且可访问。若路径无误,尝试更换音频文件格式(如mp3、wav),并检查网络请求权限设置。


在 UniApp 中,播放音频时出现 -99 错误通常表示音频资源加载或播放失败。以下是常见原因及解决方法:

1. 检查音频文件路径

  • 本地文件:确保路径正确,使用绝对路径(如 /static/audio.mp3)。
  • 网络文件:需合法且可访问的 URL(如 https://example.com/audio.mp3),并配置 manifest.json 中的网络请求权限。

2. 音频格式兼容性

  • 确保音频格式受平台支持(如 MP3、AAC)。不同平台(iOS/Android)可能支持不同格式,建议使用 MP3 作为通用格式。

3. 网络请求问题(仅网络音频)

  • 如果是网络音频,检查 URL 是否有效,并确保服务器支持跨域(CORS)。在 manifest.json 中配置合法域名:
    {
      "networkTimeout": {
        "request": 10000
      },
      "mp-weixin": {
        "requiredPrivateInfos": ["getNetworkType"]
      }
    }
    

4. 音频文件损坏或无效

  • 测试音频文件在其他播放器中是否正常。如果文件损坏,重新下载或转换格式。

5. 使用正确的 API 和事件处理

  • 使用 uni.createInnerAudioContext() 播放音频,并监听错误事件:
    const audio = uni.createInnerAudioContext();
    audio.src = 'https://example.com/audio.mp3';
    audio.onError((res) => {
      console.log('播放错误:', res.errMsg); // 输出具体错误信息
      // 根据 res.errCode 处理错误(-99 对应加载失败)
    });
    audio.play();
    

6. 平台特定问题

  • 微信小程序:检查域名是否在微信后台配置,并开启音频播放权限。
  • App 端:确认音频文件位于项目目录或可访问的网络地址。

7. 其他注意事项

  • 避免同时播放多个音频,可能造成资源冲突。
  • onLoad 或用户交互事件中触发播放,部分平台禁止自动播放。

通过以上步骤排查,通常可以解决 -99 错误。如果问题持续,检查 UniApp 和平台文档,或提供具体错误日志以进一步分析。

回到顶部