ios - MPMoviePlayerController 如何使用不受信任的证书的 url 播放音频(视频)?
<p><p><code>MPMoviePlayerController</code> 如何使用 <strong>不可信证书</strong> 的 url 播放音频(视频)?</p>
<p>有这样的错误日志===></p>
<p><em>NSURLConnection/CFURLConnection HTTP 加载失败
(kCFStreamErrorDomainSSL, -9813)</em></p>
<p>如果只使用 NSURLConnection/NSURLSession 请求请求,我知道使用它的委托(delegate)来接受不受信任的证书。(如加载图像)</p>
<p>但是如果只播放带有不受信任证书的url,如何处理这部分?
我试图添加一个 NSURLConnection 并且已经运行了委托(delegate) <code>(connection:canAuthenticateAgainstProtectionSpace: connection:canAuthenticateAgainstProtectionSpace:)</code>
在播放音频之前,我发现了错误消息:</p>
<p><em>NSURLConnection/CFURLConnection HTTP 加载失败
(kCFStreamErrorDomainSSL, -9813)</em></p>
<p>消失了,但还是无法成功播放音频。</p>
<p>有人知道吗? </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我也在 Apple 上发布了这个问题,我得到了答案。
MPMoviePlayerController 无法播放不受信任的证书。</p>
<p>相反,我们可以使用 AVPlayer 来播放带有不受信任证书的音频、视频。</p>
<p>这是我的代码,工作正常</p>
<pre><code>- (IBAction)clickPlayBtn:(id)sender
{
NSURL *sourceMovieURL = [initWithString:@"https//:xxxxxxx"];
AVURLAsset *movieAsset = ;
;
AVPlayerItem *playerItem = ;
AVPlayer *player = ;
AVPlayerLayer *playerLayer = ;
playerLayer.frame = self.view.layer.bounds;
playerLayer.videoGravity = AVLayerVideoGravityResizeAspect;
;
;
}
// AVAssetResourceLoaderDelegate
- (BOOL)resourceLoader:(AVAssetResourceLoader *)resourceLoader
shouldWaitForResponseToAuthenticationChallenge:(NSURLAuthenticationChallenge *)authenticationChallenge
{
//server trust
NSURLProtectionSpace *protectionSpace = authenticationChallenge.protectionSpace;
if ()
{
forAuthenticationChallenge:authenticationChallenge];
;
}
else{ // other type: username password, client trust..
}
return YES;
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - MPMoviePlayerController 如何使用不受信任的证书的 url 播放音频(视频)?,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/26012752/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/26012752/
</a>
</p>
页:
[1]