-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
高BPM的时候节奏不均匀 #1
Comments
我们公司的业务里也有这个需求,我的做法也是类似的,高 bpm 的时候节奏不均匀是因为,音频是有时长的,而不是一瞬间,上一个音频还没有播放完毕就开始播放下一个,就会导致这种节奏不均匀的问题,我的做法是,用两个播放器轮流播放,而不是一个播放器循环到底,加上另外一个音源,一共是三个播放器,其中两个交替播放,另外一个是每四拍子播一次,这样 bpm 的上限就翻了一倍了 |
|
公司的代码,不方便上传,我给你讲讲我的思路:我是用定时器实现的,创建定时器之前先把音频缓存好,AudioPlayer 的文件路径先设置好,这里直接 new 三个 AudioPlayer,其中两个是 soundType1,也就是节拍器里面普通的那个声音,另外一个是 soundType2,也就是每隔几拍会播放一次的特殊的那一声,三个都设置好了之后再创建定时器,定时器外搞一个 int 变量,定时器运行一次就加一次,然后定时器里面用这个变量 % 2,为0播放第一个,为1播放第二个,这样高 bpm 的问题就解决了,节奏型的话也是用这个变量求余,大概思路就这样 |
感谢老哥回复,谢谢 |
AudioPlayer 里面有个方法可以让音频跳转到指定的位置,每次播放前你都让音频跳转到 0 毫秒的位置,可能也能解决你的一些问题 |
@Venjier @zhanwj-zz 我就是因为解决不了这个问题,把 app 都从酷安下架了! 如果你们解决了请给我提个 pr😭 |
我有怀疑过是定时器间隔不精确的问题, 里面有个分支是尝试用类似游戏引擎的无限循环方式, 在循环里面算时间戳间隔,但是也无法精确到1ms |
我认为是切换音源的时候导致的
The text was updated successfully, but these errors were encountered: