Classes

The following classes are available globally.

  • @brief A class to synchronise the playback of an audio player (AudioPlayer or AudioPlayerViewController) to a timeline representing the desired playback progress of the media object.

    @discussion It needs a reference to an audio player (AudioPlayer or AudioPlayerViewController instance) and a CorrelatedClock representing the expected timeline of the audio object. This controller reads the actual and expected timeline positions of the audio item and determines the discrepancy between both readings. Based on the size of the discrepancy, it applies a simple strategy to adapt the playback of the audio player to achieve the expected playback position.

    The resync process happens every ‘syncInterval’ seconds or when changes to the expectedTimeline are observed.

    Ideas for future iterations of this component: 1. Allow for different playback adaptation algorithms e.g. QoE-aware algo to be plugged in at configuration time 2. Generalise component to synchronise media player timelines instead of actual players. Players will respond to changes in their timelines.

    See more

    Declaration

    Objective-C

    @interface AudioSyncController : NSObject

    Swift

    class AudioSyncController : NSObject
  • Custom NSError subclass with shortcut methods for creating the common SyncControllerError errors

    See more

    Declaration

    Objective-C

    @interface SyncControllerError : NSError

    Swift

    class SyncControllerError : NSError
  • @brief A class to synchronise the playback of a video player (VideoPlayerViewController) to a timeline representing the desired playback progress of the media object.

    @discussion It needs a reference to a video player (VideoPlayerViewController instance) and a CorrelatedClock representing the expected timeline of the video object. This controller reads the actual and expected timeline positions of the video item and determines the discrepancy between both readings. Based on the size of the discrepancy, it applies a simple strategy to adapt the playback of the video player to achieve the expected playback position.

    The resync process happens every ‘syncInterval’ seconds or when changes to the expectedTimeline are observed.

    Ideas for future iterations of this component: 1. Allow for different playback adaptation algorithms e.g. QoE-aware algo to be plugged in at configuration time 2. Generalise component to synchronise media player timelines instead of actual players. Players will respond to changes in their timelines.

    See more

    Declaration

    Objective-C

    @interface VideoPlayerSyncController : NSObject

    Swift

    class VideoPlayerSyncController : NSObject
  • @brief A class that intercepts and redirects calls from JS code running in a UIWebView to an object that will evaluate whether the call is a web page loading call or an invocation for a method in the native environment. The proxy object also allows calling a JS method in the web view from the native side.

    See more

    Declaration

    Objective-C

    @interface WebViewProxy : NSObject <UIWebViewDelegate>

    Swift

    class WebViewProxy : NSObject