我有AVPlayer
正在加载远程媒体URL
(HLS
流),有时播放器永远不会准备播放,但不会出现错误。是否还有其他地方可能存在错误或检查是否仍在加载AVPlayerItem
?
我有KVO
的速率,状态和播放可能会跟上,而视频未加载时从未调用过。我添加了一个按钮来检查播放器,播放器项目以及播放是否可能跟上错误。当玩家卡住时,这些报告为零,零和假。当玩家卡住时似乎是随机的(完全拒绝加载vidoe),特定视频不会发生这种情况。
我可以采取哪些其他步骤来调试此问题?还有其他地方可以检查错误或状态吗?
更多信息已检查: 播放缓冲区为空:true 播放缓冲区已满:false
答案 0 :(得分:2)
我们的解决方案是在重用播放器之前,我们使用player.replaceCurrentItemWithPlayerItem(nil)
取消分配AVPlayer。替换当前项目的某些原因有时会导致问题。我们还确保我们的视频按顺序加载,而不是一次性加载。这似乎解决了我们的问题。
答案 1 :(得分:1)
要从您的应用中加载来自远程服务器的网址,您必须将其添加到您的info.plist
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mydomain.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<false/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<false/>
</dict>
</dict>
</dict>
不要像我输入的那样完全添加线条。根据您的需求配置它们。请注意,Apple的iOS默认配置是期望https
个连接,而不是http
。您必须将其配置为允许http
。