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))
|
||
|
}
|
||
|
}
|