由于我们无法从 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 文件的名称。
Thanks!
你只需要:
- 使用您实现的类对 NSURLProtocol 进行子类化(请参阅 Apple 上的 NSURLProtocol 类参考以了解其工作原理)。您有一个 NSURLProtocol 附带的方法,您可以在其中看到拦截的请求
(BOOL)canInitWithRequest:(NSURLRequest *)请求。
只需在其中记录您的请求并返回 NO,因为您只想记录它,而不是通过启动 startLoading 方法(NSURLProtocol API 的另一种方法)来处理它。
完成此操作后,您必须通过添加以下指令将 NSURLProtocol 注册到 didFinishLaunching 方法中到您的 AppDelegate.m / .swift (无论如何...)中: NSURLProtocol.registerClass(MySubclassProtocol)
启动您的播放器,您通常应该看到所有请求都记录到调试控制台中。
希望能帮助到你
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)