@objc
public class PlayerConfiguration : NSObject, NSCopying, Codable
This structure describes player configuration for a single asset.
ClearKey usage
guard let url = URL(string: "STREAM-URL") else { return }
let config = PlayerConfiguration(with: url)
config.contentType = .hls
let player = PRESTOplaySDK.shared.player()
player.open(config: config)
FairPlay usage
guard let url = URL(string: "STREAM-URL") else { return }
let config = PlayerConfiguration(with: url)
config.contentType = .hls
config.drmSystem = .fairplay
config.drmConfiguration = DrmConfiguration()
config.drmConfiguration?.environment = .production
config.drmConfiguration?.userId = "..."
config.drmConfiguration?.sessionId = "..."
config.drmConfiguration?.merchant = "..."
config.drmConfiguration?.assetId = "..."
config.drmConfiguration?.variantId = "..."
let player = PRESTOplaySDK.shared.player()
player.open(config: config)
Custom RequestModifier usage
Example showing custom FairPlay URLs.
guard let url = URL(string: "STREAM-URL") else { return }
let config = PlayerConfiguration(with: url)
config.contentType = .hls
config.drmSystem = .fairplay
config.drmConfiguration = DrmConfiguration()
config.drmConfiguration?.licensingUrl = URL(string: "LICENSING-URL")
config.drmConfiguration?.certificateUrl = URL(string: "CERTIFICATE-URL")
// Add request/response modifiers on SDK level.
PRESTOplaySDK.shared.requestModifiers.append(RequestModifier())
PRESTOplaySDK.shared.responseModifiers.append(ResponseModifier())
let player = PRESTOplaySDK.shared.player()
player.open(config: config)