Other Protocols

The following protocols are available globally.

  • An AdBreak is an object that represents a collection of ads that are scheduled at a certain time.

    See more

    Declaration

    Swift

    @objc(THEOplayerAdBreak)
    public protocol AdBreak_Objc
  • An Ad is an abstract object that represents a single ad, which is a creative in the VAST specification.

    Remark

    See LinearAd and NonLinearAd
    See more

    Declaration

    Swift

    @objc(THEOplayerAd)
    public protocol Ad_Objc
  • Represents a linear ad in the VAST specification. It extends the properties of the Ad object.

    See more

    Declaration

    Swift

    @objc(THEOplayerLinearAd)
    public protocol LinearAd_Objc : Ad_Objc
  • Represents a non-linear ad in the VAST specification. It extends the properties of the Ad object.

    See more

    Declaration

    Swift

    @objc(THEOplayerNonLinearAd)
    public protocol NonLinearAd_Objc : Ad_Objc
  • An ad that is scheduled to appear at a certain point.

    See more

    Declaration

    Swift

    @available(*, deprecated, message: "With the next major version, `THEOplayerScheduledAd` will de obsoleted")
    @objc(THEOplayerScheduledAd)
    public protocol ScheduledAd_Objc
  • A GoogleImaAd is a concrete implementation of an Ad which represents a Google IMA ad.

    See more

    Declaration

    Swift

    @objc(THEOplayerGoogleImaAd)
    public protocol GoogleImaAd_Objc : Ad_Objc
  • Represents the list of universal ad ID information of the selected creative for the ad.

    See more

    Declaration

    Swift

    @objc(THEOplayerUniversalAdId)
    public protocol UniversalAdId
  • The Ads object helps you configure and control ads within THEOplayer.

    See more

    Declaration

    Swift

    @objc(THEOplayerAds)
    public protocol Ads_Objc
  • Represents information regarding content with dynamically inserted advertisements.

    See more

    Declaration

    Swift

    public protocol GoogleDAI
  • Represents information regarding content with dynamically inserted advertisements.

    See more

    Declaration

    Swift

    @objc(THEOplayerGoogleDAI)
    public protocol GoogleDAI_Objc
  • A handler for a server-side ad integration.

    You can implement one or more of these methods to hook into various parts of the player’s lifecycle and perform your integration-specific ad handling.

    Use the ServerSideAdIntegrationController provided by Ads.registerServerSideIntegration to update the state of your integration.

    Remark

    Experimental
    See more

    Declaration

    Swift

    public protocol ServerSideAdIntegrationHandler
  • A handler for a server-side ad integration. You can implement one or more of these methods to hook into various parts of the player’s lifecycle and perform your integration-specific ad handling.

    Use the ServerSideAdIntegrationController provided by Ads.registerServerSideIntegration to update the state of your integration.

    Remark

    Experimental
    See more

    Declaration

    Swift

    @objc(THEOplayerServerSideAdIntegrationHandler)
    public protocol ServerSideAdIntegrationHandler_Objc
  • A controller to be used by your ServerSideAdIntegrationHandler to update the state of your custom server-side ad integration.

    Remark

    Experimental
    See more

    Declaration

    Swift

    public protocol ServerSideAdIntegrationController
  • Represents a companion ad which is displayed besides the player.

    Remark

    It doesn’t extend the properties of Ad.
    See more

    Declaration

    Swift

    @objc(THEOplayerCompanionAd)
    public protocol CompanionAd_Objc
  • An error related to content protection.

    See more

    Declaration

    Swift

    @objc(THEOplayerContentProtectionError)
    public protocol ContentProtectionError_Objc : THEOError
  • Factory pattern to createContentProtectionIntegration.

    Declaration

    Swift

    @objc(THEOplayerContentProtectionIntegrationFactory)
    public protocol ContentProtectionIntegrationFactory_Objc
  • A MediaTrackList lists all available MediaTrack objects that the player can play. It contains MediaTrack objects, which are either AudioTracks or VideoTracks.

    See more

    Declaration

    Swift

    @objc(THEOplayerMediaTrackList)
    public protocol MediaTrackList_Objc
  • A VideoTrackList lists all available VideoTrack objects that the player can play.

    See more

    Declaration

    Swift

    @objc(THEOplayerVideoTrackList)
    public protocol VideoTrackList_Objc : MediaTrackList_Objc
  • An AudioTrackList lists all available AudioTrack objects that the player can play.

    See more

    Declaration

    Swift

    @objc(THEOplayerAudioTrackList)
    public protocol AudioTrackList_Objc : MediaTrackList_Objc
  • A MediaTrack is an element that represents a single video or audio track that can be played by the player.

    See more

    Declaration

    Swift

    @objc(THEOplayerMediaTrack)
    public protocol MediaTrack_Objc : Track_Objc
  • A VideoTrack object is an element that represents a single video track that can be played by the player.

    Declaration

    Swift

    @objc(THEOplayerVideoTrack)
    public protocol VideoTrack_Objc : MediaTrack_Objc
  • An AudioTrack object is an element that represents a single audio track that can be played by the player.

    See more

    Declaration

    Swift

    @objc(THEOplayerAudioTrack)
    public protocol AudioTrack_Objc : MediaTrack_Objc
  • The Network API.

    See more

    Declaration

    Swift

    @objc(THEOplayerNetwork)
    public protocol Network_Objc
  • Helps configure the settings when PresentationMode.pictureInPicture is active.

    See more

    Declaration

    Swift

    @objc(THEOplayerPictureInPicture)
    public protocol PictureInPicture_Objc
  • Extends AVPictureInPictureControllerDelegate to provide additional methods that get called when changes occur in AVPictureInPictureController.

    See more

    Declaration

    Swift

    @available(iOS 14.0, tvOS 14.0, *)
    @objc(THEOplayerAVPictureInPictureControllerDelegateExtended)
    public protocol AVPictureInPictureControllerDelegateExtended : AVPictureInPictureControllerDelegate
  • A TextTrackCue object represents an individual cue and provides methods and properties to access the data and events to act on changes to cue state. Depending on the TextTrack’s type, a cue might have different properties.

    See more

    Declaration

    Swift

    @objc(THEOplayerTextTrackCue)
    public protocol TextTrackCue_Objc
  • Web Video Text Tracks cue.

    Remark

    The content type is String.
    See more

    Declaration

    Swift

    @objc(THEOplayerWebVttCue)
    public protocol WebVttCue_Objc : TextTrackCue_Objc
  • ID3 Text Track cue. Content type is [String:String].

    Declaration

    Swift

    @objc(THEOplayerId3Cue)
    public protocol Id3Cue_Objc : TextTrackCue_Objc
  • Represents the HLS date range cue which is a part of the metadata text track.

    See more

    Declaration

    Swift

    @objc(THEOplayerDateRangeCue)
    public protocol DateRangeCue_Objc : TextTrackCue_Objc
  • A TextTrackList lists all available TextTrack objects that the player can display.

    See more

    Declaration

    Swift

    @objc(THEOplayerTextTrackList)
    public protocol TextTrackList_Objc
  • A TextTrack object is an element that represents a single text track that can be displayed in the player.

    See more

    Declaration

    Swift

    @objc(THEOplayerTextTrack)
    public protocol TextTrack_Objc : Track_Objc
  • A track object.

    Remark

    • Either a TextTrack or a MediaTrack.
    • A specific track type (e.g. TextTrack) will always be used.
    See more

    Declaration

    Swift

    @objc(THEOplayerTrack)
    public protocol Track_Objc
  • The base TextTrackCue Event protocol.

    Declaration

    Swift

    @objc(THEOplayerCueEventProtocol)
    public protocol CueEventProtocol_Objc : EventProtocol
  • The base TextTrack cue Event protocol.

    Declaration

    Swift

    @objc(THEOplayerTextTrackCueEventProtocol)
    public protocol TextTrackCueEventProtocol_Objc : EventProtocol
  • The base Track Event protocol.

    Declaration

    Swift

    @objc(THEOplayerTrackEventProtocol)
    public protocol TrackEventProtocol_Objc : EventProtocol
  • Classes that comform to this protocol can add and remove event listeners.

    See more

    Declaration

    Swift

    @objc(THEOplayerEventDispatcherProtocol)
    public protocol EventDispatcherProtocol_Objc
  • The DRMConfiguration object provides a set of DRM parameters for DRM streaming.

    See more

    Declaration

    Swift

    @objc(THEOplayerDRMConfiguration)
    public protocol DRMConfiguration_Objc
  • The FairPlay DRM configuration.

    Declaration

    Swift

    @objc(THEOplayerFairPlayDRMConfigurationProtocol)
    public protocol FairPlayDRMConfigurationProtocol_Objc : DRMConfiguration_Objc
  • The Widevine DRM configuration.

    Declaration

    Swift

    @objc(THEOplayerWidevineDRMConfigurationProtocol)
    public protocol WidevineDRMConfigurationProtocol_Objc : DRMConfiguration_Objc
  • Manifest interceptor introduces the possibility to intercept/observe the manifest requests made by the player. (master and rendition (child) manifest)

    It is a AVAssetResourceLoaderDelegate subclass and hooked into the AVURLAsset.resourceLoader of the player item.

    Remark

    Only works on online resources.

    Since

    v5.0.0

    See more

    Declaration

    Swift

    public protocol ManifestInterceptor : AVAssetResourceLoaderDelegate
  • Developer Settings API

    This API provides access to developer settings, debugging tools and experimental features.

    Remark

    The experimental APIs can make their way into THEOplayer production APIs some day, but not guaranteed. Experimental APIs can be broken between minor or even between patch releases too. Relying on them in production systems can be dangerous.

    Since

    v5.0.0

    See more

    Declaration

    Swift

    public protocol DeveloperSettings
  • Chromecast, also known as Google Cast, is a casting device designed by Google.

    See more

    Declaration

    Swift

    public protocol InternalCastIntegration : InternalContentPlayerIntegration
  • The caching API allows to store a streaming source on the user’s device.

    See more

    Declaration

    Swift

    @objc(THEOplayerCache)
    public protocol Cache_Objc
  • Represents a caching task.

    See more

    Declaration

    Swift

    @objc(THEOplayerCachingTask)
    public protocol CachingTask_Objc
  • The caching task license controller which can be used to renew the license.

    See more

    Declaration

    Swift

    @objc(THEOplayerCachingTaskLicense)
    public protocol CachingTaskLicense_Objc
  • The AirPlay API.

    See more

    Declaration

    Swift

    @objc(THEOplayerAirplay)
    public protocol Airplay_Objc
  • The Cast object helps you configure and control casting to external devices with THEOplayer.

    See more

    Declaration

    Swift

    @objc(THEOplayerCast)
    public protocol Cast_Objc
  • Chromecast, also known as Google Cast, is a casting device designed by Google.

    See more

    Declaration

    Swift

    @objc(THEOplayerChromecast)
    public protocol Chromecast_Objc
  • The configuration for a custom server-side ad insertion (SSAI) integration.

    See more

    Declaration

    Swift

    @objc(THEOplayerCustomServerSideAdInsertionConfiguration)
    public protocol CustomServerSideAdInsertionConfiguration : ServerSideAdInsertionConfiguration
  • The Fullscreen object helps you configure the settings of the fullscreen mode.

    See more

    Declaration

    Swift

    @objc(THEOplayerFullscreen)
    public protocol Fullscreen_Objc
  • The fullscreen delegate which allows control over the presentation of the fullscreen view controller.

    See more

    Declaration

    Swift

    @objc(THEOplayerFullscreenPresentationDelegate)
    public protocol FullscreenPresentationDelegate