是否能在音频播放中加入endTime?请官方回答
发布于 5 年前 作者 leizhou 1943 次浏览 来自 官方Issues

我们的需求如下,实现复读机的 A-B 循环播放功能(A是起始时间,B是结束时间),并且可以在A-B间循环。

目前的微信API中有AudioContext和InnerAudioContext以及BackgroundAudioManager

目前的实现中和我们需求相关的参数和方法有:

number startTime

开始播放的位置(单位:s),默认为 0

boolean loop

是否循环播放,默认为 false

BackgroundAudioManager.onTimeUpdate(function callback)

监听背景音频播放进度更新事件,只有小程序在前台时会回调。

BackgroundAudioManager.seek(number currentTime)

跳转到指定位置

InnerAudioContext.seek(number position)

跳转到指定位置

按理说可以满足需求,但是我们的需求对于循环的实时性要求很高(0-1毫秒延迟,延迟是指播放到B点后,再次从A点开始播放前的短暂空白声音),所以实际上无法被满足。

现有的方法是底层native的onTimeUpdate播放事件回传至js,然后再由js控制seek,这样的延时太大,所以需要在底层native实现A-B循环的功能,谢谢。

需要加入的参数为:

number endTime

结束播放的位置(单位:s),默认为 声音的实际长度,当播放到endTime时,播放自动停止,如果设置了loop循环,会自动从startTime处开始播放,谢谢。

回到顶部