朋友我有简单的音频播放器(MPMoviePlayerController)可以播放音频流。在iOS 11上,我遇到了非常麻烦的问题,我有一千次错误,我的流被停止了:
NSURLConnection finished with error - code -1002
我粘贴了这段代码(这是我在stackowerflow上看到的代码),但它对我没有帮助:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<dict>
<key>cast.mysite.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
也许你知道最好的解决方案?
答案 0 :(得分:29)
该错误 与使用HTTP而不是HTTPS有关。 App Transport Security失败返回错误代码-1022。
错误代码-1002表示无效的网址。也许您的HTTP直播流播放列表文件包含结构无效的URL(例如缺少方案,http / https以外的方案等)?
要进行其他调试,请设置此环境变量
CFNETWORK_DIAGNOSTICS=1
在您的Xcode项目中并重新运行该应用程序。一旦你知道哪个URL失败了,问题就会变得更加明显。
如果不是,请提交错误。
答案 1 :(得分:1)
如果您的URL包含空格,则会出现此问题。我通过用“%20”替换空格来解决它,然后您可以安全地使用它。替换空格的Objective C代码如下。
your_url_variable_name = [your_url_variable_name stringByReplacingOccurrencesOfString:@" " withString:@"%20"];
答案 2 :(得分:-1)
首先,您必须使用安全服务器(具有有效证书的服务器)。 我不确定是否有必要,因为我从未尝试使用无效证书来命中服务器。您可以尝试使用此代码(不确定它是否适合您)将此代码放在Appdelegate.m中
@implementation NSURLRequest(DataController)
+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
return YES;
}
@end