

SwiftのAVPlayerでネットワークからの動画再生を試しています。mp4ファイルをストリーミング再生を試みています。

PlayerのStatusを監視するためにKVOをセットします。

[code]

    self.playerItem.addObserver(self, forKeyPath: "status", options: .New | .Initial, context: nil)
    
    override func observeValueForKeyPath(keyPath: String,
      ofObject object: AnyObject,
      change: [NSObject : AnyObject],
      context: UnsafeMutablePointer<Void>) {}
    
[/code]

でステータス変化時にこのfunctionで受けます。

statusが.ReadyToPlayのときには、play()で再生できますが、.Failedになるときがあります。

しかし、同じファイルを再生していますが、.ReadyToPlayになるときもあれば、.Failedになるときもあります。

はっきりしていませんが、ネットワークのスピードは早く出ているのですが、サーバのハードディスクが動きだした最初のアクセスが.Failedになるような気がします。(何度かやっていてそのような気がしてます)

どのようなときが.Failedになるのでしょうか？また.Failedになってもplay()すると再生ができる可能性はあるのでしょうか？

ご存知であればご教示お願いします。


CC BY-SA 3.0
2017-08-12T11:40:14.360
37142
2017-08-14T05:49:23.630
2017-08-14T05:49:23.630
8593
8593
question
swift ios
SwiftのAVPlayerでFailedになる理由