Методы AVContentKeySessionDelegate не вызываются - PullRequest
0 голосов
/ 16 июня 2020

Реализованы методы делегата AVContentKeySessionDelegate в моем ViewController.swift в моем iOS приложении, которое должно воспроизводить контент DRM с помощью Brightcove SDK.

Фрагмент кода:

 class ViewController: UIViewController, AVContentKeySessionDelegate, BCOVPlaybackControllerDelegate {  
    var contentKeySession: AVContentKeySession!
      .
      . 
   func getVideo() { 
     // fetching video using an API call
        .
        .
     let asset = AVURLAsset(url: videoUrl)
     self.contentKeySession = AVContentKeySession(keySystem: .fairPlayStreaming)
     self.contentKeySession?.setDelegate(self, queue: DispatchQueue.main)
     self.contentKeySession?.addContentKeyRecipient(asset)
   }

  //MARK: - AVContentKeySessionDelegate Methods
  func contentKeySession(_ session: AVContentKeySession, didProvide keyRequest: AVContentKeyRequest) {
    handleKeyRequest(keyRequest: keyRequest)
  }

  func contentKeySession(_ session: AVContentKeySession, contentKeyRequest keyRequest: AVContentKeyRequest, didFailWithError err: Error) {
    print(err)
  }

  func contentKeySession(_ session: AVContentKeySession, contentKeyRequestDidSucceed keyRequest: AVContentKeyRequest) {
    print(keyRequest)
  }
 }

Проблема

  1. Ни один из этих методов делегата не вызывается.
  2. Кроме того, в консоли Xcode была замечена ошибка: NSURLConnection завершился с ошибкой - код -1002 ( Разрешить произвольную загрузку имеет значение true в настройках транспорта приложений в Info.plist )

1 Ответ

0 голосов
/ 26 июня 2020

Добавление

self.contentKeySession.processContentKeyRequest(withIdentifier: "<identifier>", initializationData: nil, options: nil)

устранило проблему. Когда делается запрос на обработку ключа содержимого, вызываются методы делегата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...