收藏
回答

Taro.createInnerAudioContext创建内部 audio 播放音频延迟?

// 在ios系统静音状态下会有延迟,如果有媒体声音就是秒级播放,怎样能规避这个静音态下的延迟呢?
<template>
  <view class="intercom-wrap">
    <button @click="pause">暂停</button>
  </view>
</template>


<script lang="ts" setup>
import { ref } from 'vue'
import Taro, { useDidShow, useLoad, useReady, useUnload } from '@tarojs/taro';


// 获取全局应用程序实例
const app = Taro.getApp<any>();
const innerAudioContext = Taro.createInnerAudioContext({ useWebAudioImplement: true });;
useDidShow(() => {
    // 在模块顶层初始化音频上下文,确保最早执行
    innerAudioContext.src = 'https://static.zmexing.com/bujizhan/file/2025-11-13/e21554d27ca245ffacf78fc5625e6ce3.wav';
    innerAudioContext.loop = true;
    innerAudioContext.volume = 1
    innerAudioContext.autoplay = true;
    innerAudioContext.play();
    Taro.setInnerAudioOption({
      obeyMuteSwitch: false
    });
    // 加载成功回调(确认资源就绪)
    
    // 添加错误监听
    innerAudioContext.onError((err) => {
      console.error('音频播放错误:', err);
    });


    // 添加播放状态监听
    innerAudioContext.onPlay(() => {
      console.log('音频开始播放');
    });


});
const pause = () => {
  console.log('暂停-------');
  innerAudioContext.pause();
}
useUnload(() => {
  // 在页面卸载时停止音频播放
  innerAudioContext.destroy();
});
</script>

回答关注问题邀请回答
收藏

3 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2025-11-28

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    2025-11-28
    有用
    回复
  • XS
    XS
    04-03

    你这是用的什么框架?

    04-03
    有用
    回复
  • 智能回答 智能回答 本次回答由AI生成
    2025-11-25
    有用
登录 后发表内容