我正在使用一个iOS应用程序,该应用程序仅播放实时流HLS视频。
我的问题是我已经使用AVPlayer和视图控制器设置了Playground,启动视图控制器时一切正常,播放器也已启动,但流媒体未启动。该流是.m3u8类型,在Safari和Chrome浏览器中效果非常好。 iOS不会在模拟器或真实设备上向我显示视频。
我也搜索了其他SO解决方案,但是它们都不对我有用。
ModelA
答案 0 :(得分:0)
我使用的HTTP URL不安全,因此不允许设备或模拟器播放它。我放了一个例外,允许不安全的协议让iOS平稳地传输HLS。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
<key>NSExceptionDomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
答案 1 :(得分:0)
在我遇到相同问题的情况下,被接受的答案似乎并不正确,并添加了ATS特定的所有任意负载配置来完成工作。
我尝试了所有方法之后,解决的方法是,如果该URL是从“ http”开始的,则ATS会很容易地停止该URL,因此,如果我们使用的是非安全的“ http” URL,则将该URL中的http替换为https为我。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>some.url.to.com.countrycode</key>
<dict>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
迅速:
let httpsurl = httpURLString.stringByReplacingOccurrencesOfString("http", withString: "https")
Obj-C:
NSString *httpsurl = [httpURLString stringByReplacingOccurrencesOfString:@“http” withString:@“https”];