收藏
回答

微信小程序播放音频时,为什么上线版用户第一次点击无反应,要第二次点击才行?

我在项目中发现,每次页面进入后用户第一次点击音乐条目时没有声音,控制台报 operateAudio:fail:play audio fail。但再次点击同一按钮时音乐才会正常播放。开发工具没有问题,只在真机有这行为。

已尝试:

  • createInnerAudioContext() 提前到 onLoad 中;
  • 在点击时才初始化;
  • 使用 onCanplayplay()

但问题仍存在。想请问大家有没有类似经历?你们是如何兼容“首次点击”即播放的?

onLoad() {

  // 初始化音频上下文

  this.audioContext = wx.createInnerAudioContext();

  this.audioContext.onEnded(() => {

    this.stopAllMusic();

  });


  // 默认选中并播放第一首

  const firstMusic = this.data.musicList[0];

  this.setData({

    currentPlaying: firstMusic

  });

  this.playMusic(firstMusic);

},


playMusic(music) {

  // 更新播放状态

  const updatedList = this.data.musicList.map(item => ({

    ...item,

    isPlaying: item.id === music.id

  }));


  this.setData({

    musicList: updatedList,

    currentPlaying: music

  });

  // 播放音乐

  this.audioContext.src = music.url;

  this.audioContext.play();   // 这里第一次点击会报错:operateAudio:fail:play audio fail

},



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

2 个回答

  • 智能回答 智能回答 本次回答由AI生成
    2025-08-31
    有用 1
  • 秦柏
    秦柏
    2025-08-31

    ok,问题解决

    2025-08-31
    有用
    回复
登录 后发表内容