在开发节奏音乐游戏时,我注意到AVAudioPlayer在报告的.currentTime和音频文件中的实际位置之间有一个延迟,该延迟因文件格式而异。
例如,播放.m4a文件将比播放.aac文件(ADTS aac)产生更低的延迟。
这在某种程度上是可以理解的,我已经接受了这一点(因为根据文件类型,延迟是恒定的)。
我不明白的是,为什么两种.m4a文件也会出现这些不同的延迟,一种是从原始AIFF文件转换而来的,另一种是先转换为ADTS AAC,然后转换为.m4a
换句话说:
如果我运行:
afconvert -f m4af -d aac my_aif_file.aif
我得到了一个比创建的文件延迟更低的文件:
afconvert -f adts -d aac my_aif_file.aif
afconvert -f m4af -d aac my_aif_file.aac
理解这些不同结果的任何解释/解决方案都将不胜感激。
发现了问题——这是转换本身。
当转换为adts-aac时,转换后的音频具有大约40ms的静音前缀。。。奇怪的