Мне нужны очень точные измерения продолжительности аудио файла. При сохранении этого значения в моей модели я использую этот метод для получения значения:
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.
Почему, почему это происходит? И как я могу избежать несоответствия?