Я создаю аудиоплеер для iOS, используя Swift и SwiftUI. Я хочу иметь возможность начать воспроизведение удаленного mp3 до того, как файл будет полностью загружен. И, конечно же, как только весь файл загружен, мне не нужно загружать его снова.
Есть сторонняя библиотека ( CachingPlayerItem ), которая обещает сделать именно это, но это Проект только с двумя участниками и без обновлений в течение более года. Он также полагается на AVPlayer, что, я думаю, означает, что я застрял с пользовательским интерфейсом AVPlayer по умолчанию?
Идея, которую я здесь обнаружил на Stackoverflow , заключается в загрузке удаленного файла кусками ( установка заголовка Content-Range
в запросе http).
Используя эту идею, я мог загрузить первые пять минут или около того удаленного звука и начать его воспроизведение. Тем временем я начинаю загрузку полного файла, и когда он завершается, я прекращаю воспроизведение короткого файла и начинаю воспроизведение полного файла с места, где я остановил воспроизведение короткого файла.
Это хорошая идея или есть ли лучший маршрут?