今天尝试做视频播放,遇到的一个问题。
我们网站的视频的不能直接拿来URL播放,需要给Request加上Referer才可以请求到资源。
- (void)viewDidLoad {
//referer
NSString *referer = @"https://scontent.cdninstagram.com/hphotos-xpa1/t50.2886-16/11200303_1440130956287424_1714699187_n";
//视频url
NSURL *videoURL = [NSURL URLWithString:@"http://test.3dker.cn/api/files/get/file/by/576a4b22cc673f1c008f444e.mp4"];
//传给视频url给播放库进行播放
[self playVideoWithURL:request.URL];
}
- (void)playVideoWithURL:(NSURL *)url
{
if (!self.videoController) {
CGFloat width = [UIScreen mainScreen].bounds.size.width;
self.videoController = [[KRVideoPlayerController alloc] initWithFrame:CGRectMake(0, 0, width, width*(9.0/16.0))];
__weak typeof(self)weakSelf = self;
[self.videoController setDimissCompleteBlock:^{
weakSelf.videoController = nil;
}];
[self.videoController showInWindow];
}
//此库就直接调用系统MPMoviePlayerController Api了,里面又不可以修改
self.videoController.contentURL = url;
}
//若不加referer资源就请求不到,但是Api又并没有生成Request,请问,有没有办法解决这种问题?
也許可以自訂
NSURLProtocol
来实现为每一个特定的NSURLRequest
添加 Header,如果你那个库底层是用到NSURLRequest
的話您可以透過修改下面的部分程式碼來實現自己的需求。
我也遇到這個問題了,我想問下是怎麼實現的,能給個demo之類的嗎