Воспроизведение потока аудиофайлов с использованием HTTP Live Streaming на клиенте iOS без потери пользовательского интерфейса Quick Time

У меня есть сервер потоковой передачи HTTP Live, который обслуживает сегментированный аудиоконтент в формате mp3 (URL указывает на индексный файл playlist.m3u8). Мне нужно создать клиентское приложение iOS, чтобы использовать этот аудиопоток без с использованием каких-либо стандартных элементов управления / пользовательского интерфейса Apple. Он должен воспроизводить поток в фоновом режиме, и я хочу использовать свой собственный пользовательский интерфейс для предоставления элементов управления.

Поскольку контент является чисто звуковым, я не хочу использовать класс MPMoviePlayerController, поскольку он берет на себя управление пользовательским интерфейсом. Я пробовал использовать AVAudioPlayer, хотя он не предназначен для сетевых потоков, которые неудивительно не воспроизводятся с кодом ошибки «-43»: NSOSStatusErrorDomain.

Я также попытался создать UIWebView с высотой и шириной 1 пиксель и указателем его в файл playlist.m3u8 на сервере. Это работает, но, к сожалению, я все еще теряю пользовательский интерфейс, поскольку UIWebView просто делегирует задачу воспроизведения проигрывателю QuickTime, который запускается в моем приложении в полноэкранном режиме для устройств iOS 3.xx.

В принципе, мне кажется, что Apple не предоставила никаких клиентские API для использования потоков HTTP Live Streaming аудио , и разработчики вынуждены отказаться от пользовательского интерфейса для проигрывателя QuickTime, который воспроизводит поток с логотипом QT, занимающим экран. тьфу ...

Я хотел бы знать, есть ли у кого-нибудь предложения, чтобы помочь мне с вышеуказанным. В противном случае мой план Б - отказаться от HTTP Live Streaming и использовать знаменитую Matt Gallagher классическую реализацию потоковой передачи. Однако, Меня немного беспокоят руководящие принципы Apple , которые ясно предполагают, что для приложений, которые, как ожидается, будут отправлять большой объем аудио- или видеоконтента по сотовым сетям (каковым является мое приложение), необходимо использовать потоковую передачу HTTP Live. Означает ли это, что реализация моего плана Б может быть отклонена Apple? Есть ли способы обойти это руководство?

14
задан Cœur 11 July 2019 в 04:48
поделиться