Ошибка при получении данных запроса ключа: причина AVFoundationErrorDomain: необязательно ("Произошла неизвестная ошибка (-42650)")

Я использую Apple Fireplay DRM для доставки зашифрованного контента на устройства. Я смог успешно загрузить сертификат, но при попытке получить данные SPC из AVAssetResourceLoadingRequestЯ получаю эту ошибку.

Error obtaining key request data: AVFoundationErrorDomain reason: Optional("An unknown error occurred (-42650)")

Ниже приведен код для извлечения контента SPC.

let spcData: Data!

    do {
        /* 
         To obtain the Server Playback Context (SPC), we call 
         AVAssetResourceLoadingRequest.streamingContentKeyRequestData(forApp:contentIdentifier:options:)
         using the information we obtained earlier.
         */
        spcData = try resourceLoadingRequest.streamingContentKeyRequestData(forApp: applicationCertificate, contentIdentifier: assetIDData, options: resourceLoadingRequestOptions)
    } catch let error as NSError {
        print("Error obtaining key request data: \(error.domain) reason: \(error.localizedFailureReason)")
        resourceLoadingRequest.finishLoading(with: error)
        return
    }

Я уже искал код ошибки: 42650 на форуме разработчиков Apple, но не повезло!

2 ответа

Решение

Я получил эту ошибку также. В моем случае я генерировал applicationCertificate, используя неправильный формат данных (параметр appIdentifier в resourceLoadingRequest.streamingContentKeyRequestData(forApp:contentIdentifier:options:) функция) Сертификат, который мне дали, был закодирован в base64. Поэтому мне нужно создать данные с Data(base64Encoded: yourCertificateString),

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

AVAssetResourceLoadingRequestStreamingContentKeyRequestRequiresPersistentKey: trueкfalse.

После этого он начал работать.

Другие вопросы по тегам