6

AVPlayerリモート メディアURL(ストリーム) をロードしている がHLSあり、プレーヤーの再生準備が整っていない場合がありますが、エラーは表示されません。エラーが発生する可能性のある場所や、まだロード中かどうかを確認する方法はありAVPlayerItemますか?

ビデオがロードされてKVOいないときに呼び出されることのないレート、ステータス、および再生が維持される可能性があります。プレーヤーのエラーやプレーヤーアイテム、再生が追いつきそうかチェックするボタンを追加しました。プレイヤーが動けなくなったように見える場合、これらは nil、nil、および false を報告します。プレーヤーが動かなくなったとき (ビデオの読み込みをまったく拒否したとき) はランダムに見えますが、特定のビデオでは発生しません。

この問題をデバッグするには、他にどのような手順を実行できますか? エラーやステータスを確認する場所は他にありますか?

確認された詳細情報: 再生バッファが空です: true 再生バッファがいっぱいです: false

4

2 に答える 2

2

私たちの解決策は、プレーヤーを再利用する前に、 を使用して AVPlayer の割り当てを解除することplayer.replaceCurrentItemWithPlayerItem(nil)です。現在のアイテムを交換すると、何らかの理由で問題が発生することがありました。また、動画が一度に読み込まれるのではなく、順番に読み込まれるようにしました。それは私たちの問題を解決したようです。

于 2016-08-26T23:05:40.733 に答える
1

To be able to load URLs from remote servers from within your app you have to add this to your 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>

see the docs

Don't add the lines exactly as I typed. Configure them for your needs. Note that Apple's default configuration for iOS is to expect https connections, not http. You must configure it to allow http.

于 2016-08-25T05:23:55.187 に答える