我有一个加载远程媒体URL (HLS流)的AVPlayer,有时播放器永远不会准备好播放,但不会出现错误。是否还有其他地方可能出现错误,或者有什么方法可以检查它是否仍在加载AVPlayerItem
我有KVO的速率,状态和回放可能会跟上,这永远不会被调用时,视频没有加载。我添加了一个按钮来检查播放器上的错误,播放器项目,以及回放是否可能跟上。当玩家似乎被卡住时,这些报告为nil、nil和false。当播放器卡住(根本拒绝加载vidoe )时,这似乎是随机的,它不会发生在特定的视频上。
我还可以采取哪些其他步骤来调试此问题?是否有其他地方可以检查错误或状态?
已检查更多信息:播放缓冲区为空: true播放缓冲区已满: false
发布于 2016-08-27 07:05:41
我们的解决方案是在重用播放器之前,使用player.replaceCurrentItemWithPlayerItem(nil)释放AVPlayer。由于某些原因,替换当前项有时会导致问题。我们还确保我们的视频是按顺序加载的,而不是一次加载所有视频。这似乎解决了我们的问题。
发布于 2016-08-25 13:23:55
要从应用程序中加载来自远程服务器的URL,您必须将此URL添加到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>不要像我输入的那样添加行。根据您的需要对它们进行配置。请注意,苹果对iOS的默认配置是连接https,而不是http。您必须将其配置为允许http。
https://stackoverflow.com/questions/38512973
复制相似问题