ContentProtectionIntegration
@objc(THEOplayerContentProtectionIntegration)
public protocol ContentProtectionIntegrationThis ContentProtectionIntegration defines some methods to alter license and certificate requests and responses.
- 
                  
                  Handler which will be called when an HTTP request for a new certificate is about to be sent. Remark Remark: - If a valid certificate was provided as part of the KeySystemConfiguration.certificate, this handler will not be called.
- The handler must return either a request or a raw certificate. When a (possibly modified) request is returned, the player will send that request instead of the original request. When a raw certificate is returned, the request is skipped entirely and the certificate is used directly. If no handler is provided, the player sends the original request.
- For example, an integration may want to “wrap” the request body in a different format (e.g. JSON or XML) for certain DRM vendors, or add additional authentication tokens to the request. Alternatively, an integration may want to send the HTTP request using its own network stack, and return the final certificate response to the player.
 DeclarationSwift @objc optional func onCertificateRequest(request: CertificateRequest, callback: CertificateRequestCallback)ParametersrequestThe CertificateRequestthat is about to be sent.callbackThe CertificateRequestCallbackthat should be called with the modifiedCertificateRequest.
- If a valid certificate was provided as part of the 
- 
                  
                  Handler which will be called when an HTTP request for a certificate returns a response. Remark Remark: - The completion handler callbackwill be called regardless of the HTTP status code on the response (i.e. also for unsuccessful statuses outside of the 200-299 range).
- The completion handler callbackmust return the raw certificate, in a manner suitable for further processing by the CDM. If no completion handler is provided, the player uses the response body as raw certificate, but only if the response’s status indicates success.
- For example, an integration may want to “unwrap” a wrapped JSON or XML response body, turning it into a raw certificate.
 DeclarationSwift @objc optional func onCertificateResponse(response: CertificateResponse, callback: CertificateResponseCallback)ParametersresponseThe CertificateResponsethat was returned from the certificate request.callbackThe CertificateResponseCallbackcompletion handler that should be called with the modifiedCertificateResponse.
- The completion handler 
- 
                  
                  Handler which will be called when an HTTP request for a new license is about to be sent. Remark Remark: - The completion handler callbackmust return either a request or a raw license. When a (possibly modified) request is returned, the player will send that request instead of the original request. When a raw license is returned, the request is skipped entirely and the license is used directly. If no handler is provided, the player sends the original request.
- For example, an integration may want to “wrap” the request body in a different format (e.g. JSON or XML) for certain DRM vendors, or add additional authentication tokens to the request. Alternatively, an integration may want to send the HTTP request using its own network stack, and return the final license response to the player.
 DeclarationSwift @objc optional func onLicenseRequest(request: LicenseRequest, callback: LicenseRequestCallback)ParametersrequestThe LicenseRequestthat is about to be sent.callbackThe LicenseRequestCallbackthat should be called with the modifiedLicenseRequest.
- The completion handler 
- 
                  
                  Handler which will be called when an HTTP request for a license returns an response. Remark Remark: - The completion handler callbackwill be called regardless of the HTTP status code on the response (i.e. also for unsuccessful statuses outside of the 200-299 range).
- The completion handler callbackmust return the raw license, in a manner suitable for further processing by the CDM.
- If no completion handler is provided, the player uses the response body as raw license, but only if the response’s status indicates success. For example, an integration may want to “unwrap” a wrapped JSON or XML response body, turning it into a raw license.
 DeclarationSwift @objc optional func onLicenseResponse(response: LicenseResponse, callback: LicenseResponseCallback)ParametersresponseThe LicenseResponsethat was returned from the license request.callbackThe LicenseResponseCallbackthat should be called with the modifiedLicenseResponse.
- The completion handler 
- 
                  
                  A function to extract the Fairplay content ID from the key URI, as given by the URI attribute of the #EXT-X-KEYtag in the HLS playlist (m3u8).Remark Remark: - In order to start a Fairplay license request, the player must provide the initialization data, the content ID and the certificate to the CDM.
- The content ID is usually contained in the key URI in some vendor-specific way, for example in the host name (e.g. skd://123456789) or in the URL query (e.g.skd://vendor?123456789). This function should extract this content ID from the key URI.
- This method is required only for Fairplay integrations. It is ignored for other key systems.
 DeclarationSwift @objc optional func extractFairplayContentId(skdUrl: String) -> StringParametersskdUrlThe key URI. 
 ContentProtectionIntegration Protocol Reference
      ContentProtectionIntegration Protocol Reference