Dice Extension
Source Resolver
AVDoris provides a helper class to create DorisSource by sending a sequence of requests to Dice API internally. To use it you need to initialize it using DiceAPIConfig
Create DiceSourceResolver
//If you suppord ads integration, you have an option to pass ads related headers to send them with content request
//(ignore or pass nil if no ads support)
let adsMacroHeaders: [String: String] = [:]
let diceAPIConfig = DiceAPIConfig(realm: "", //dce.sandbox
environment: .production, //.development, .qa, .staging
apiKey: "", //your Dice api key
adsMacroHeaders: adsMacroHeaders)
let sourceResolver = DiceSourceResolver(apiConfig: diceAPIConfig)
Example of adsMacroHeaders can be found here
Example of usage
sourceResolver
.set(authType: .token("auth token")) //.credentials for simple username/password auth
.set(videoId: "123456", isLive: false)
.resolveSource { result in
switch result {
case .success(let source):
avDoris.load(source: source)
case .failure(let error):
//handle token expired error etc.
break
}
}
Important
If you choose .token as authType you have to refresh and reset token yourself in case source resolver will result with corresponding HTTP error