小程序
小游戏
企业微信
微信支付
扫描小程序码分享
为了节省页面资源,把一段小音频循环播放,给innerAudioContext添加loop属性,但不幸的是,该属性并不能保证无缝循环播放,明显的感觉到中间的停顿。
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
是的,在小程序的 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()
这样,每当音频播放完一遍后,就会立即从头开始播放,从而避免出现间隙。
注意:这种方法仅适用于微信小程序,在支付宝小程序中不适用。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
是的,在小程序的 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()
这样,每当音频播放完一遍后,就会立即从头开始播放,从而避免出现间隙。
注意:这种方法仅适用于微信小程序,在支付宝小程序中不适用。