6

我有一个AVPlayer正在加载远程媒体URLHLS流)的播放器,有时播放器从未准备好播放,但没有出现错误。是否还有其他地方可能出现错误或检查它是否仍在加载的方法AVPlayerItem

我有KVO可能跟上的速率、状态和播放,当视频没有加载时,它们永远不会被调用。我添加了一个按钮来检查播放器、播放器项目上的错误以及播放是否可能跟上。当玩家似乎卡住时,这些报告 nil、nil 和 false。播放器卡住时似乎是随机的(根本拒绝加载视频),它不会发生在特定的视频上。

我可以采取哪些其他步骤来调试此问题?还有其他地方可以检查错误或状态吗?

检查更多信息:播放缓冲区为空:true 播放缓冲区已满:false

4

2 回答 2

2

我们的解决方案是在重用播放器之前,我们使用player.replaceCurrentItemWithPlayerItem(nil). 替换当前项目的某些原因有时会导致问题。我们还确保我们的视频按顺序加载,而不是一次全部加载。这似乎解决了我们的问题。

于 2016-08-26T23:05:40.733 回答
1

为了能够从您的应用程序中从远程服务器加载 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>

查看文档

不要完全按照我输入的方式添加行。根据您的需要配置它们。请注意,Apple 对 iOS 的默认配置是期望https连接,而不是http. 您必须将其配置为允许http.

于 2016-08-25T05:23:55.187 回答