Mar*_*ubé 5 mpmovieplayercontroller http-live-streaming ios
我目前正在iOS应用程序中提供视频MPMoviePlayerController.这些文件从需要身份验证的后端服务器流式传输.它是Authorization HTTP Header中基于密钥的身份验证集.
它曾经与单个视频文件完美配合.现在我们正在尝试实现HLS自适应流媒体,我们面临着一堵墙.我目前正在使用自定义NSURLProtocol子类来捕获对后端服务器发出的请求并注入适当的Authorization标头.对于HLS,它根本不起作用.
当我们查看服务器日志时,我们清楚地看到对m3u8文件的第一个请求工作正常.然后所有后续调用(其他m3u8文件和ts也)被禁止403.它似乎MPMoviePlayerController不NSURLProtocol用于其他文件.(旁注:它确实适用于模拟器思想,但不适用于让我认为两者都没有以相同方式实现的物理设备).
self.videoController = [[MPMoviePlayerController alloc] initWithContentURL:video.videoURL];
Run Code Online (Sandbox Code Playgroud)
+ (NSURLRequest *) canonicalRequestForRequest:(NSURLRequest *)request {
NSMutableURLRequest *newRequest = request.mutableCopy;
[newRequest setValue:@"HIDDEN" forHTTPHeaderField:@"Authorization"];
return newRequest;
}
Run Code Online (Sandbox Code Playgroud)
任何想法,建议,解决方案?
经过苹果开发者技术支持的验证后,我认为我想要实现的目标是不可能的(并且不受支持)。
以下是回复中的引用:
您在 NSURLProtocol 等方面看到的问题是电影播放子系统不会在您的进程中运行其 HTTP 请求。相反,这些请求是从单独的系统进程 mediaserverd 中运行的。因此,您影响该播放行为的所有努力都是徒劳的。
| 归档时间: |
|
| 查看次数: |
453 次 |
| 最近记录: |