板子是GD32107C,应该算是异步播放,不靠sof修正播放指针,目前发现I2S播放的速度比USB接收到的要快,每过一段时间播放指针会追上一次接收指针,于是想通过某种算法拉长播放的时间,网上找了一下,由于我的搜索能力低下,目前没有收获,然后某人出了个主意,快追上的时候,把一个buffer拉长1倍(比如【1,2,3,4。。。】变成【1,1,2,2,3,3,4,4。。。】)然后播放,用来延时,之后再回到正常播放,但是播放的效果很糟,我都不敢确定我的程序逻辑是否有问题。
求指导关于科学的的滤波算法,只求能勉强听就足矣,不求太先进高端。
另外单独测试了一下我自己写的放慢一倍速度播放的函数,能勉强听出是慢了,但是音质变得非常差,这算是正常现象吗? |