0e4c95def9
* minimal api * add suport for `getLicense` * update logic for obtaining `assetId` * add support for localSourceEncryptionKeyScheme * fix typo * fix pendingLicenses key bug * lint code * code clean * code clean * remove old files * fix tvOS build * fix errors loop * move `localSourceEncryptionKeyScheme` into drm params * add check for drm type * use DebugLog * lint * update docs * lint code * fix bad rebase * update docs * fix crashes on simulators * show error on simulator when using DRM * fix typos * code clean
42 lines
1.4 KiB
Swift
42 lines
1.4 KiB
Swift
//
|
|
// DRMManager+AVContentKeySessionDelegate.swift
|
|
// react-native-video
|
|
//
|
|
// Created by Krzysztof Moch on 14/08/2024.
|
|
//
|
|
|
|
import AVFoundation
|
|
|
|
extension DRMManager: AVContentKeySessionDelegate {
|
|
func contentKeySession(_: AVContentKeySession, didProvide keyRequest: AVContentKeyRequest) {
|
|
handleContentKeyRequest(keyRequest: keyRequest)
|
|
}
|
|
|
|
func contentKeySession(_: AVContentKeySession, didProvideRenewingContentKeyRequest keyRequest: AVContentKeyRequest) {
|
|
handleContentKeyRequest(keyRequest: keyRequest)
|
|
}
|
|
|
|
func contentKeySession(_: AVContentKeySession, shouldRetry _: AVContentKeyRequest, reason retryReason: AVContentKeyRequest.RetryReason) -> Bool {
|
|
let retryReasons: [AVContentKeyRequest.RetryReason] = [
|
|
.timedOut,
|
|
.receivedResponseWithExpiredLease,
|
|
.receivedObsoleteContentKey,
|
|
]
|
|
return retryReasons.contains(retryReason)
|
|
}
|
|
|
|
func contentKeySession(_: AVContentKeySession, didProvide keyRequest: AVPersistableContentKeyRequest) {
|
|
Task {
|
|
do {
|
|
try await handlePersistableKeyRequest(keyRequest: keyRequest)
|
|
} catch {
|
|
handleError(error, for: keyRequest)
|
|
}
|
|
}
|
|
}
|
|
|
|
func contentKeySession(_: AVContentKeySession, contentKeyRequest _: AVContentKeyRequest, didFailWithError error: Error) {
|
|
DebugLog(String(describing: error))
|
|
}
|
|
}
|