Используя AVPlayer в iOS, вы можете узнать текущий.файл ts или текущая метка времени из кодера?
Поскольку мы не можем получить закрытые данные субтитров или данные субтитров из AVPlayer, мы рассматриваем другие методы запуска, такие как timecode или, по крайней мере, знание .ts-файл, который в данный момент активен. Я не смог найти ничего в документации, и CMTime от проигрывателя не дает мне временной код, который встроен в файлы m3u8.
NSLog(@"%f", CMTimeGetSeconds([mPlayer currentTime] ) );
Это не то, что я ищу.
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:562
#EXT-X-PROGRAM-DATE-TIME:2020-10-23T14:18:59+08:00
#EXTINF:10,
http://aedsgios1-i.akamaihd.net/hls/live/204775/test1-p/mobile600/Seg_102320_124459_1/mobile600_102320_124459_562.ts
#EXT-X-PROGRAM-DATE-TIME:2020-10-23T14:19:09+08:00
#EXTINF:10,
EXT-X-PROGRAM-DATE-TIME - это то, что я хочу знать, или по крайней мере имя того самого .активный файл ts.
Спасибо!
3 ответов:
Вам просто нужно:
- подкласс NSURLProtocol с классом, который вы реализуете (обратитесь к ссылке на класс NSURLProtocol в Apple, чтобы увидеть, как это работает). У вас есть метод, идущий с NSURLProtocol, в котором вы можете увидеть перехваченный запрос
(BOOL)canInitWithRequest: (NSURLRequest *)запрос.
Просто регистрируйте запрос внутри него и возвращайте NO, потому что вы просто хотите зарегистрировать его, а не обрабатывать его, запустив startloading метод, другой метод от NSURLProtocol ПРИКЛАДНОЙ ПРОГРАММНЫЙ ИНТЕРФЕЙС.
Как только это будет сделано, вы должны зарегистрировать свой NSURLProtocol в методе didFinishLaunching в вашем AppDelegate.м / .Свифт (неважно...) добавив эту инструкцию: NSURLProtocol.registerClass (MySubclassProtocol)
Запустите плеер, вы должны видеть нормально все запросы, зарегистрированные в вашей консоли отладки.
Надеюсь, это поможет
Небольшое обновление по этому вопросу. Небольшая хитрость, чтобы получить больше информации о текущем .ts загружается AVPlayer, это зарегистрировать в методе didFinishLaunching AppDelegate, объект NSURLProtocol
- > NSURLProtocol.registerClass (MyURLProtocol)
Это дает вам возможность видеть все запросы, проходящие в ваше приложение, и, следовательно, видеть, когда сегмент загружается игроком:
2015-06-04 10:57:13.172 MyApp[924:310b] получил запрос на URL: http://livestream.net/channel/channel.isml/events(1433260048)/channel-audio_1=128000-video=1600000.m3u8 2015-06-04 10: 57: 13.182 MyApp[924:6a07] получил запрос на URL: http://livestream.net/channel/channel.isml/events(1433260048)/channel-audio_1=128000-video=1600000-143341543.ts
Comments