MPMoviePlayerController 如何使用 不可信证书 的 url 播放音频(视频)?
有这样的错误日志===>
NSURLConnection/CFURLConnection HTTP 加载失败
(kCFStreamErrorDomainSSL, -9813)
如果只使用 NSURLConnection/NSURLSession 请求请求,我知道使用它的委托(delegate)来接受不受信任的证书。(如加载图像)
但是如果只播放带有不受信任证书的url,如何处理这部分?
我试图添加一个 NSURLConnection 并且已经运行了委托(delegate) (connection:canAuthenticateAgainstProtectionSpace: connection:canAuthenticateAgainstProtectionSpace
在播放音频之前,我发现了错误消息:
NSURLConnection/CFURLConnection HTTP 加载失败
(kCFStreamErrorDomainSSL, -9813)
消失了,但还是无法成功播放音频。
有人知道吗?
Best Answer-推荐答案 strong>
我也在 Apple 上发布了这个问题,我得到了答案。
MPMoviePlayerController 无法播放不受信任的证书。
相反,我们可以使用 AVPlayer 来播放带有不受信任证书的音频、视频。
这是我的代码,工作正常
- (IBAction)clickPlayBtnid)sender
{
NSURL *sourceMovieURL = [[NSURL alloc]initWithString"https//:xxxxxxx"];
AVURLAsset *movieAsset = [AVURLAsset URLAssetWithURL:sourceMovieURL options:nil];
[movieAsset.resourceLoader setDelegate:self queue:dispatch_get_main_queue()];
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:movieAsset];
AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem];
AVPlayerLayer *playerLayer = [AVPlayerLayer playerLayerWithPlayer:player];
playerLayer.frame = self.view.layer.bounds;
playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;
[self.view.layer addSublayer:playerLayer];
[player play];
}
// AVAssetResourceLoaderDelegate
- (BOOL)resourceLoaderAVAssetResourceLoader *)resourceLoader
shouldWaitForResponseToAuthenticationChallengeNSURLAuthenticationChallenge *)authenticationChallenge
{
//server trust
NSURLProtectionSpace *protectionSpace = authenticationChallenge.protectionSpace;
if ([protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
{
[authenticationChallenge.sender useCredential:[NSURLCredential credentialForTrust:authenticationChallenge.protectionSpace.serverTrust] forAuthenticationChallenge:authenticationChallenge];
[authenticationChallenge.sender continueWithoutCredentialForAuthenticationChallenge:authenticationChallenge];
}
else{ // other type: username password, client trust..
}
return YES;
}
关于ios - MPMoviePlayerController 如何使用不受信任的证书的 url 播放音频(视频)?,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/26012752/
|