我需要非常精确地测量音频文件的持续时间。当将此值存储到模型中时,我使用以下方法获取值:
func getDurationOfAudioSectionWith(url: URL) -> Double {
let audioAsset = AVURLAsset(url: url)
let audioDuration = audioAsset.duration
let audioDurationSeconds = CMTimeGetSeconds(audioDuration)
return audioDurationSeconds
}
在我应用程序的另一个位置,我将音频文件加载到AVAudioPlayer中,但是当我使用AVAudioPlayer.duration
时,它返回的长度略小于保存到模型中的值。 AVURLAsset返回值为3.584,AVAudioPlayer返回值为3.407。
为什么会这样?以及如何避免差异?