2017-03-24 18 views
3

私たちはビデオプレーヤでフェアプレーを実装しており、リンゴがdrmビデオを再生するために必要なすべてのステップを実行できますが、ビデオは再生されません。 我々がすることができます:フェアプレーの再生が動作しない

  1. は、私たちの代理人に電話を受ける:上記の呼び出しで shouldWaitForLoadingOfRequestedResource
  2. は、我々は適切に証明書をダウンロードし、 証明書+ assetIdで、我々はsuccessufuly SPC
  3. を生成SPCで
  4. は、我々は、ライセンスサーバーに投稿することができますし、sucesfully はCKCでCKC
  5. を受け、我々は

    呼び出します
    loadingRequest.dataRequest?.respond(with: ckcResponseData) 
    loadingRequest.finishLoading() 
    

動画は再生されません。 紛失しているものはありますか? Appleのアカウントで動作させるには、 "FPS Deployment Package"が必要ですか? 実際のデバイスですでにテストが行​​われていることに注意してください。

答えて

0

あなたの実装を見ないと言うのは難しいです。とにかく、FairPlayの経験に基づいて分かち合うことができます。私はあなたの演劇が暗号化されていないビデオを再生できると思うので、それはうまく実装され、働いています。

"finishLoading"ピースに成功した場合、相手側で(そしてその前に)、プレーヤーの "currentItem.status"のオブザーバーとして登録する必要があります。ような何か:

player.addObserver(self, forKeyPath: "currentItem.status", options: NSKeyValueObservingOptions.new, context: nil); 

ので、いくつかの段階で、あなたはコールバックをobserveValueForKeyPath取得します、とあなたは何が起こっているかをチェックする必要があります。

override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { 
    // Do any other KVO-related checks... and the following: 
    if let status = self.player.currentItem?.status { 
     switch (status) { 
     case .failed: 
      // Something went wrong! 
      self.itemFailed() 
     case .readyToPlay: 
      // Item is ready to play, so just .play() it! 
      self.itemReadyToPlay() 
     case .unknown: 
      // Oh-oh. 
      self.itemUnknown() 
     } 
    } 
} 

あなたはこの段階ですでにある場合は、私に教えてください、どのようなエラーが発生しますか。

(これはFairPlayに固有のものではありませんが、資産の読み込みに関する一般的なことですが、使用許諾契約を破っていません)

関連する問題