收藏
回答

innerAudioContext loop循环播放 有明显的间隙?

为了节省页面资源,把一段小音频循环播放,给innerAudioContext添加loop属性,但不幸的是,该属性并不能保证无缝循环播放,明显的感觉到中间的停顿。

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

1 个回答

  • 微盟
    微盟
    2022-12-20

    是的,在小程序的 innerAudioContext 中使用 loop 属性循环播放音频时,可能会出现明显的间隙。这是因为在播放完一遍音频之后,innerAudioContext 会暂停一段时间,然后再开始播放下一遍,导致出现间隙。

    要解决这个问题,你可以尝试使用 wx.createInnerAudioContext 方法创建一个新的 innerAudioContext 实例,并在播放完一遍后立即重新开始播放,而不是暂停一段时间。

    示例代码如下:

    const innerAudioContext = wx.createInnerAudioContext()
    ​
    innerAudioContext.src = 'http://example.com/song.mp3'
    innerAudioContext.loop = true
    ​
    innerAudioContext.onEnded(() => {
      innerAudioContext.seek(0)
      innerAudioContext.play()
    })
    ​
    innerAudioContext.play()
    

    这样,每当音频播放完一遍后,就会立即从头开始播放,从而避免出现间隙。

    注意:这种方法仅适用于微信小程序,在支付宝小程序中不适用。


    2022-12-20
    有用
    回复 1
    • 棉花糖
      棉花糖
      2022-12-20
      这个方法适用于  uni.innerAudioContext 嘛?
      2022-12-20
      回复
登录 后发表内容