Использование Reachability на iOS для выбора соответствующего индексного файла в m3u8 (HLS)

Согласно Руководству Apple по HTTP Live Streaming :

Если вы являетесь разработчиком приложений для iOS, вы можете запросить устройство пользователя, чтобы определить, является ли исходное соединение сотовым или Wi-Fi, и выбрать соответствующий файл главного индекса.

Я понимаю, как использовать Reachability для определения соединения, однако я не понимаю, как сказать AVPlayer загрузить другой файл в индексный файл m3u8.

Я немного запутался, может быть, он делает это автоматически? Но тогда я не понимаю, почему они предлагают вам это сделать. (В конечном счете, я хотел бы убедиться, что даже при подключении 3G/Edge мое видео воспроизводится как можно быстрее, поэтому я хочу убедиться, что загружаю соответствующий файл для воспроизведения).


person tettoffensive    schedule 15.12.2015    source источник


Ответы (1)


Они предлагают создавать несколько мастеров m3u8 списков воспроизведения, не выбирая вариант из мастера (недостаток которого заключается в невозможности переключения на другой поток при изменении условий сети).

Чтобы у пользователя было хорошее впечатление при первом воспроизведении потока, независимо от начального сетевого подключения, у вас должно быть более одного основного индексного файла, состоящего из одних и тех же альтернативных индексных файлов, но с другим первым потоком.

Первый вариант в основном списке воспроизведения всегда загружается первым и используется для определения битрейта, который может поддерживать проигрыватель.

Таким образом, у вас может быть либо два мастер-файла с разными вариантами для сотовой связи/WiFi, или два мастер-файла с одинаковыми потоками, но с измененным порядком, чтобы первый поток соответствовал типу сети.

В своем коде вы должны определить тип сети и запросить один главный URL-адрес или другой.

person aergistal    schedule 15.12.2015