Итак, я пытаюсь воспроизвести потоковую песню в формате fla c, используя SwiftAudio (https://github.com/jorgenhenrichsen/SwiftAudio), этот ящик библиотеки, используя AVPlayer. Проблема, которую я получил, заключается в том, что когда я играю потоковую песню с аудиоформатом c (https://www.eclassical.com/custom/eclassical/files/BIS1447-002-flac_24.flac) и после того, как я ищу индикатор выполнения и сохраняю проигрыватель, играющий до конца песни, песня не не заканчиваются на правильном времени.
После поиска решения я получил ссылку от AVPlayer Поиск не точный даже с допуском до: kCMTimeZero скажем добавить AVURLAssetPreferPreciseDurationAndTimingKey
. из-за этого я делаю решение для кода SwiftAudio, как этот
AVPlayerWrapper.swift
func load(from url: URL, playWhenReady: Bool, initialTime: TimeInterval? = nil, options: [String : Any]? = nil) {
_initialTime = initialTime
self.pause()
var opt = options
opt = [AVURLAssetPreferPreciseDurationAndTimingKey : true]
print("add option AVURLAssetPreferPreciseDurationAndTimingKey")
self.load(from: url, playWhenReady: playWhenReady, options: opt) /*this function will set opt value to AVURLAsset*/
}
другой другой формат потоковой песни (я тестирую базу на примере - .mp3) работает нормально, но когда очередь песни воспроизводит потоковую песню онлайн в формате .fla c, она возвращает информацию об ошибке
Error Domain=AVFoundationErrorDomain Code=-11819 "Cannot Complete Action" UserInfo={NSLocalizedDescription=Cannot Complete Action, NSLocalizedRecoverySuggestion=Try again later.}
Итак, я что-то пропускаю, когда для AVURLAssetPreferPreciseDurationAndTimingKey
установлено значение AVURLAsset
?