Ios AVAudioPlayer M4A从AIFF转换的文件产生的延迟与从ADTS AAC转换的M4A不同

Ios AVAudioPlayer M4A从AIFF转换的文件产生的延迟与从ADTS AAC转换的M4A不同,ios,audio,aac,m4a,adts,Ios,Audio,Aac,M4a,Adts,在制作节奏音乐游戏时,我注意到AVAudioPlayer在报告的.currentTime和音频文件中的实际位置之间有一个延迟,该延迟根据文件格式而变化 例如,播放.m4a文件将比播放.aac文件(ADTS aac)产生更低的延迟 这在某种程度上是可以理解的,我已经接受了这一点(根据文件类型,延迟是一个常数) 我不明白的是,为什么两种.m4a文件也会出现这些不同的延迟,一种是从原始AIFF文件转换而来,另一种是先转换为ADTS AAC,然后再转换为.m4a 换言之: 如果我跑步: afconver

在制作节奏音乐游戏时,我注意到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时,转换后的音频有一个大约40毫秒静音的前缀。。。 奇怪的