Classes

The following classes are available globally.

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
  • Create Mux client instance

    See more

    Declaration

    Swift

    public class MuxFactory : AnalyticsComponentFactoryProtocol
  • MuxMetadata

    See more

    Declaration

    Swift

    public class MuxMetadata : AnalyticsMetadata
  • Declaration

    Swift

    public class MuxSettings
  • 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 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’

    See more

    Declaration

    Swift

    open class BasePlayer : BaseInterceptable
  • 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.

    See more

    Declaration

    Swift

    open class CastSettings

Download

  • Download

    See more

    Declaration

    Swift

    open class Download : Codable
  • MediaDownloadProgress

    See more

    Declaration

    Swift

    public class DownloadProgress : Codable
  • DRM configuration used for protected playback.

    See more

    Declaration

    Swift

    @objc
    public class DrmConfiguration : NSObject, NSCopying, Codable

PlayerConfiguration

  • 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)
    
    See more

    Declaration

    Swift

    @objc
    public class PlayerConfiguration : NSObject, NSCopying, Codable

Tracks

  • Container that groups all available media tracks by type.

    See more

    Declaration

    Swift

    public class Tracks : Equatable, CustomStringConvertible

VideoTrack

  • Video track metadata and available renditions.

    See more

    Declaration

    Swift

    public class VideoTrack : Track, Equatable, CustomStringConvertible

AudioTrack

  • Audio track metadata and available renditions.

    See more

    Declaration

    Swift

    public class AudioTrack : Track, Equatable, CustomStringConvertible

TextTrack

  • Text track metadata (subtitles/captions) and rendering hints.

    See more

    Declaration

    Swift

    public class TextTrack : Track, Equatable, CustomStringConvertible

Rendition

  • Base rendition metadata shared by audio/video rendition variants.

    See more

    Declaration

    Swift

    public class Rendition : Equatable

AudioRendition

VideoRendition

DrmInfo

  • DRM metadata attached to renditions.

    See more

    Declaration

    Swift

    public class DrmInfo : Equatable
  • CastlabsApple

    See more

    Declaration

    Swift

    @objc
    public class CorePlugins : NSObject, CLPluginProtocol
  • The CMCD Configuration

    See more

    Declaration

    Swift

    public class CmcdConfiguration : NSObject, NSCopying, Codable
  • Discussion: Apple uses predefined network sessions called URLSession. There is no way to create a dedicated URLSession for each Request. If ‘NetworkConfiguration’ is updated it will affect the whole URLSession, which is shared for all the HTTP/S requests in ‘NetworkEngine’.

    See more

    Declaration

    Swift

    public class NetworkConfiguration : NSObject, NSCopying, Codable
  • Configuration for per-state timeouts of the player state machine. Values are in seconds. Use 0 to disable a timeout for a state.

    See more

    Declaration

    Swift

    public class StateTimeoutConfiguration : NSObject, NSCopying, Codable
  • HLS settings shared by the Apple HLS player and downloader.

    See more

    Declaration

    Swift

    public class HLSSettings
  • 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 : NSObject