Classes

The following classes are available globally.

BroadpeakPlugin

ConvivaPlugin

IMA

  • IMA

    Declaration

    Swift

    public class IMA: BaseComponent, IMAContentPlayhead, IMAAdsLoaderDelegate, IMAAdsManagerDelegate,
        ViewBasedComponentProtocol
    extension IMA: AdsComponentProtocol
    extension IMA: AdsAPI
  • Create IMA client instance

    See more

    Declaration

    Swift

    public class IMAFactory : AdsComponentFactoryProtocol
  • Plugin wrapping Google IMA ads

    See more

    Declaration

    Swift

    public class IMAPlugin : CLPluginProtocol
  • Create IMA client instance

    See more

    Declaration

    Swift

    public class SubtitlesFactory : SubtitlesComponentFactoryProtocol
  • Create Thumbnails client instance

    See more

    Declaration

    Swift

    public class ThumbnailsFactory : ThumbnailsComponentFactoryProtocol
  • CastlabsVT

    See more

    Declaration

    Swift

    public class VTPlugin : CLPluginProtocol
  • CastlabsVT

    See more

    Declaration

    Swift

    public class VTWithWidevinePlugin : CLPluginProtocol
  • Declaration

    Swift

    public class WidevineDrmFactory : DrmComponentFactoryProtocol
  • Create Youbora client instance

    See more

    Declaration

    Swift

    public class YouboraFactory : AnalyticsComponentFactoryProtocol
  • YouboraMetadata

    See more

    Declaration

    Swift

    public class YouboraMetadata : AnalyticsMetadata
  • YouboraSettings

    See more

    Declaration

    Swift

    public class YouboraSettings
  • BasePlayer implements all properties that are updated from the State and must be synchronised on ‘playerQueue’

    Declaration

    Swift

    open class BasePlayer : BaseComponent
  • Cross-component communication move outside factory

    See more

    Declaration

    Swift

    open class BasePlayerStateSubscriber : InternalStateSubscriberProtocol
  • Default handler for phone call interruption

    Declaration

    Swift

    public class DefaultPhoneCallHandler
  • The meta-data class wraps and mandatory and optional meta-data that are send to various analytics backends.

    The two parameters that are mandatory in all cases are live and assetId. The live flag needs to be set to true if the content is a live stream. Analytics backends usually require this information before playback starts. The assetId identifies the content uniquely within the analytics system.

    Declaration

    Swift

    open class AnalyticsMetadata
  • The cast settings class wraps common settings for Chromecast appId is mandatory for casting.

    Declaration

    Swift

    open class CastSettings

Download

PlayerConfiguration

  • This is the structure that describes the player configuration for a single asset

    ClearKey usage:

    guard let url = URL(string: "STREAM-URL") else {
        return
    }
    
    let playerConfiguration(with: url, contentType: .hls)
    guard let player =  PRESTOplaySDK.shared.playerForContent(playerConfiguration) else {
        print("no player")
        return
    }
    

    Fairplay usage:

    guard let url = URL(string: "STREAM-URL") else {
        return
    }
    
    let playerConfiguration(with: url, contentType: .hls)
    playerConfiguration.drmSystem = .fairplay
    playerConfiguration.drmConfiguration = DrmConfiguration()
    playerConfiguration.drmConfiguration.environment = .production
    playerConfiguration.drmConfiguration.userId = "..."
    playerConfiguration.drmConfiguration.sessionId = "..."
    playerConfiguration.drmConfiguration.merchant = "..."
    playerConfiguration.drmConfiguration.assetId = "..."
    playerConfiguration.drmConfiguration.variantId = "..."
    
    guard let player =  PRESTOplaySDK.shared.playerForContent(playerConfiguration) else {
        print("no player")
        return
    }
    

    Custom RequestModifier usage:

    Example showing custom Fairplay URLs

    guard let url = URL(string: "STREAM-URL") else {
        return
    }
    
    let playerConfiguration(with: url, contentType: .hls)
    playerConfiguration.drmSystem = .fairplay
    playerConfiguration.drmConfiguration = DrmConfiguration()
    playerConfiguration.drmConfiguration.licensingUrl = URL(string: "LICENSING-URL"
    playerConfiguration.drmConfiguration.certificateUrl = URL(string: "CERTIFICATE-URL")
    
    // implement custom request modifier to add headers and intercept
    // the request
     PRESTOplaySDK.shared.requestModifiers.append(RequestModifier())
     PRESTOplaySDK.shared.responseModifiers.append(ResponseModifier())
    
    guard let player =  PRESTOplaySDK.shared.playerForContent(playerConfiguration) else {
        print("no player")
        return
    }
    
    See more

    Declaration

    Swift

    @objc
    public class PlayerConfiguration : NSObject, Codable

PRESTOError

  • Error Interface

    Declaration

    Swift

    public class PRESTOError: NSObject,
                          // A type representing an error value that can be thrown
                          Swift.Error
  • The subtitles settings to customize subtitles rendering.

    See more

    Declaration

    Swift

    public class SubtitlesStyle : NSObject
  • GridThumbnail

    Used to define a request to download images and slice them into multiple thumbnails in a grid pattern. Each image will be sliced into smaller segments based on the gridWidth and gridHeight. E.g. if these are both set to 2, then the image will be divided into a 2 x 2 grid producing 4 equal sized thumbnails per image. The grid cells are ordered from left to right, then top to bottom.

    Single or multiple images may be downloaded using this object. If maxIndex is greater than 1 and the pathTemplate contains the token index then multiple image urls can be specified. The final image urls which will be downloaded are specified by the baseUrl + the result of the pathTemplate substitution. The index token in pathTemplate will be substituted with the index 1 up to and including maxIndex. E.g. if pathTemplate where image_$index$.jpg and maxIndex were 3, then image_1.jpg, image_2.jpg, image_3.jpg would be generated from the substitution.

    Each thumbnail will be displayed for durationMs with no gabs in between. Therefore thumbnails will cover a total timerange of durationMs multiplied by the total number of thumbnails generated.

    See more

    Declaration

    Swift

    public class GridThumbnail
  • Defines a single thumbnail image along with it’s timing information.

    See more

    Declaration

    Swift

    public class ThumbnailImage

Utils

  • mack: I think this should be internal only

    See more

    Declaration

    Swift

    public class Utils