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

Я работаю в приложении, в котором я могу без проблем воспроизводить плейлист HLS m3u8 потокового радио (только аудио), используя экземпляр AVPlayer. Используя Charles, я вижу, как плейлист обновляется в обычном темпе (каждые 9-10 секунд, что занимает один файл медиасегмента). Когда я выполняю seekToTime: (назад во времени), проигрыватель успешно воспроизводит поток, когда я хочу, но в Чарльзе я наблюдаю, как проигрыватель начинает загружать огромное количество файлов медиасегментов, потребляя много данных. Кажется, что плеер загружает все файлы медиасегмента до этого времени, а затем снова продолжает нормально работать.

Я понимаю, что правильным поведением будет загрузка файла медиасегмента на время, которое я ищу, начать его воспроизведение, а затем постоянно загружать 1 или 2 файла медиасегмента каждые 9-10 секунд, как это происходит при воспроизведении потока. без временного сдвига.

Мой вопрос в том, является ли это нормальным поведением или что-то может быть не так с моим плейлистом m3u8 или реализацией клиента. Кто-нибудь может помочь мне прояснить это?

ОБНОВЛЕНО: я могу подтвердить, что этого не происходит в iOS 7, поэтому, похоже, это ошибка, появившаяся в iOS 8.


person Daniel    schedule 04.02.2015    source источник
comment
Попробуйте сделать то же самое, используя [Пример Apple Stream: Bip Bop: devimages.apple.com/ iphone/samples/bipbop/bipbopall.m3u8   -  person Till    schedule 04.02.2015
comment
Я сделал, и он ведет себя так же. Также я создал новый проект и инициализировал экземпляр AVPlayer с тремя разными потоками (включая поток Apple) и использовал seekToDate: до трех минут назад. Результат тот же: выполняя этот метод, вы можете видеть, насколько он успешен, но он очень быстро загружает много файлов медиасегментов, поэтому я думаю, что это нормальное поведение, по крайней мере, с использованием AVPlayer для этого.   -  person Daniel    schedule 05.02.2015


Ответы (1)


Мне в Apple сказали, что это не баг, а фича. Они сделали буфер больше, начиная с iOS 8.

person Daniel    schedule 17.04.2015