uni-app Android端innerAudioContext无法播放部分网络URL来源mp3音频,H5端、IOS端、小程序端正常

uni-app Android端innerAudioContext无法播放部分网络URL来源mp3音频,H5端、IOS端、小程序端正常

示例代码:

const onSpeechClick = (type: number) => {  
  // adoctx.src = type ? content.value!.entry.speech!.uspronounce! : content.value!.entry.speech!.ukpronounce!;  
  adoctx.src = 'https://dict.youdao.com/pronounce/base?product=webdict&appVersion=1&client=web&mid=1&vendor=web&screen=1&model=1&imei=1&network=wifi&keyfrom=dick&keyid=voiceDictWeb&mysticTime=1715187197779&yduuid=abcdefg&rate=4&word=remote%2Bcontrol&type=1&sign=3d94b11f908faa42ad67fa8c7998e417&pointParam=appVersion%2Cclient%2Cimei%2Ckeyfrom%2Ckeyid%2Cmid%2Cmodel%2CmysticTime%2Cnetwork%2Cproduct%2Crate%2Cscreen%2Ctype%2Cvendor%2Cword%2Cyduuid%2Ckey';  
  adoctx.onPlay(() => {  
    console.log('开始播放');  
  });  
  adoctx.onError((res) => {  
    console.log(res.errMsg);  
    console.log(res.errCode);  
  });  
  console.log('onSpeechClick');  
  adoctx.play();  
}

操作步骤:

  • 复制上方代码示例直接运行

预期结果:

  • Android端能够正常播放音频

实际结果:

  • H5端、IOS端、小程序端是正常的,只有Android端无法播放
开发环境 版本号 项目创建方式
Windows 22631.3447 HBuilderX
Android Android 13
手机厂商 手机机型 页面类型
vivo IQOO neo 5 vue
vue3
打包方式
离线

更多关于uni-app Android端innerAudioContext无法播放部分网络URL来源mp3音频,H5端、IOS端、小程序端正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app Android端innerAudioContext无法播放部分网络URL来源mp3音频,H5端、IOS端、小程序端正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在uni-app开发中,innerAudioContext 是一个用于播放音频的API。如果你在Android端遇到无法播放部分网络URL来源的mp3音频,而在H5端、iOS端、小程序端正常,可能是由于以下几个原因导致的:

1. 网络请求问题

  • 原因: Android系统对网络请求的处理可能与其他平台不同,特别是涉及到跨域请求或某些网络协议时。
  • 解决方案:
    • 确保音频文件的URL是有效的,并且可以在Android设备上直接访问。
    • 检查音频文件的MIME类型是否正确,通常mp3文件的MIME类型应为audio/mpeg
    • 如果音频文件是通过HTTPS协议提供的,确保Android设备支持该协议。

2. 音频编码问题

  • 原因: Android系统对音频编码的支持可能与其他平台不同,某些mp3文件可能使用了Android不支持的编码格式。
  • 解决方案:
    • 使用音频转换工具将mp3文件转换为另一种格式(如AAC),并测试是否可以播放。
    • 确保mp3文件的编码格式是Android支持的常见格式。

3. 权限问题

  • 原因: Android系统可能需要特定的权限才能访问网络音频文件。
  • 解决方案:
    • 确保在AndroidManifest.xml文件中添加了网络权限:
      <uses-permission android:name="android.permission.INTERNET" />
      
    • 确保在运行时请求了必要的权限。

4. 缓存问题

  • 原因: Android系统可能会缓存音频文件,导致某些文件无法正常播放。
  • 解决方案:
    • 尝试清除应用的缓存,或者在播放音频时强制不使用缓存。

5. 平台差异

  • 原因: innerAudioContext 在不同平台上的实现可能有所不同,导致在某些平台上表现不一致。
  • 解决方案:
    • 使用uni-app的条件编译功能,针对Android平台使用不同的音频播放方式,例如使用plus.audio.createPlayer或其他第三方插件。

6. 调试与日志

  • 原因: 缺乏详细的错误信息,难以定位问题。
  • 解决方案:
    • 在播放音频时,添加错误监听器,捕获并打印错误信息:
      innerAudioContext.onError((err) => {
          console.error('音频播放错误:', err);
      });
回到顶部