uni-app 3.25版本音频不能播放

uni-app 3.25版本音频不能播放

操作步骤:

  • 创建音频后,HTTPS地址,无法播放

预期结果:

  • 播放

实际结果:

  • 不能播放

bug描述:

  • uni.createInnerAudioContext(); 在IOS不能播放声音,在H5正常

相关链接:



| 信息类别       | 详细信息           |
|----------------|--------------------|
| 产品分类       | uniapp/App         |
| PC开发环境     | Windows            |
| PC版本号       | 1901               |
| HBuilderX类型  | 正式               |
| HBuilderX版本  | 3.3.5              |
| 手机系统       | iOS                |
| 手机系统版本   | iOS 14             |
| 手机厂商       | 苹果               |
| 手机机型       | xsmax              |
| 页面类型       | vue                |
| vue版本        | vue2               |
| 打包方式       | 云端               |
| 项目创建方式   | HBuilderX          |

更多关于uni-app 3.25版本音频不能播放的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

所以标题上的3.25版本指的是hx版本么?

更多关于uni-app 3.25版本音频不能播放的实战教程也可以访问 https://www.itying.com/category-93-b0.html


uni.createInnerAudioContext(); 这个居然在IOS静音模式下,没有声音,请问哪个音频可以在静音模式下播放音效

此问题已确认,相同问题参考这个帖子下面的回复 https://ask.dcloud.net.cn/question/137543

hx 3.3.7 新增属性 sessionCategory ,支持同时播放多个音频文件,但是会受iOS物理静音开关的影响,如果不想要受物理开关的影响可设置为 playback,playback不支持同时播放多个音频文件 参考文档 https://uniapp.dcloud.net.cn/api/media/audio-context?id=createinneraudiocontext

在 uni-app 3.25 版本中,iOS 端使用 uni.createInnerAudioContext() 无法播放 HTTPS 音频的问题,通常与 iOS 系统的音频播放策略和 uni-app 底层实现有关。以下是可能的原因和解决方案:

  1. iOS 音频自动播放限制:iOS 系统(特别是 Safari 及 WebView)要求音频播放必须由用户主动触发(如点击事件)。在 onLoad 或页面初始化时直接调用 play() 可能被系统阻止。

    • 解决:将音频播放绑定到按钮点击等用户交互事件中,确保播放动作由用户触发。
  2. 音频格式兼容性:iOS 对音频格式支持有限(如 MP3、AAC、WAV 等),需检查音频链接格式是否兼容。

    • 解决:确保音频为 iOS 支持的格式(如 MP3),并检查 HTTPS 链接可正常访问。
  3. 音频上下文初始化问题createInnerAudioContext 创建后,需确保在 onCanplay 回调触发后再调用 play(),否则可能播放失败。

    • 示例代码调整
      const audio = uni.createInnerAudioContext();
      audio.src = 'https://example.com/audio.mp3';
      audio.onCanplay(() => {
          audio.play(); // 确保在 canplay 事件中播放
      });
回到顶部