У нас есть приложение, которое воспроизводит длинный mp3-файл (длиной 1 час). Мы хотим иметь возможность играть с заданных точек в файле. Но, когда мы это делаем, это неточно до 10 секунд.
Вот код:
let trackStart = arrTracks![MediaPlayer.shared.currentSongNo].samples
let frameRate : Int32 = (MediaPlayer.shared.player?.currentItem?.asset.duration.timescale)!
MediaPlayer.shared.player?.seek(to: CMTimeMakeWithSeconds(Double(trackStart), frameRate),
toleranceBefore: kCMTimeZero, toleranceAfter: kCMTimeZero)
- Мы должны использовать AVPlayer, потому что нам нужен более качественный «спектральный»: AVAudioTimePitchAlgorithm.
У нас не было проблем с AVAudioPlayer, но (насколько мне известно) мы должны использовать AVPlayer, потому что нам нужен более качественный «спектральный»: AVAudioTimePitchAlgorithm.
[Редактировать:] - Ошибка постоянна - она всегда воспроизводится с одного и того же (неправильного) места для заданной запрошенной позиции. Это также верно после перезапуска.
Любая помощь очень ценится! Спасибо
[Редактировать:]
- Мы уже пробовали
preferredTimescale: playerTimescale
- Также пробовал
kCMTimeIndefinite
вместоkCMTimeZero