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

Doris