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 moreDeclaration
Objective-C
@interface AudioSyncController : NSObject
Swift
class AudioSyncController : NSObject
-
Custom NSError subclass with shortcut methods for creating the common SyncControllerError errors
See moreDeclaration
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 moreDeclaration
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 moreDeclaration
Objective-C
@interface WebViewProxy : NSObject <UIWebViewDelegate>
Swift
class WebViewProxy : NSObject
-
A class to send timestamps reporting progress of a TV programme to a web view.
See moreDeclaration
Objective-C
@interface WebViewSyncController : NSObject <InvocationProcessor>
Swift
class WebViewSyncController : NSObject, InvocationProcessor