由于我们无法从AVPlayer中获取隐藏字幕数据或字幕数据,因此我们正在研究其他触发方法,例如时间码或至少知道当前处于活动状态的.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文件的名称.
谢谢!
解决方法
你只需要:
>使用您实现的类子类NSURLProtocol(请参阅Apple上的NSURLProtocol类参考以了解它是如何工作的).您有一个NSURLProtocol附带的方法,您可以在其中查看截获的请求
(BOOL)canInitWithRequest:(NSURLRequest *)请求.
只需在其中记录您的请求并返回NO,因为您只想记录它而不是通过启动startLoading方法来处理它,这是NSURLProtocol API的另一种方法.
>完成此操作后,您必须通过添加以下指令将NSURLProtocol注册到您的AppDelegate.m / .swift(无论……)中的didFinishLaunching方法:NSURLProtocol.registerClass(MySubclassProtocol)
>启动播放器,通常会看到所有请求都登录到调试控制台.
希望能帮助到你