High-Level API

Overview of the High-Level API

The high-level API sits on top of the low-level API providing an "abstraction layer" to alleviate the need for a programmer to worry about the granular details of the low-level API, such as settings timers, parsing XML events and dealing with shared memory buffers.

284

The audio/video engine as well as the details of the low-level API are still part of the application, but they are effectively "hidden" from the programmer in favor of using the higher-level interface.

There are still synchronous and asynchronous API calls used, but instead of registering two C-level function pointers as a callbacks to receive XML-based audio and video events, the programmer will receive higher level participant-based events in the form of platform-appropriate callbacks (delegate methods for MacOS and iOS, a Java interface for Android and C# delegates for .NET/Windows).

Instead of dealing with the need to parse XML structures to receive information about video stream ids and related metadata, the high-level API will provide data structures based on the concept of a participant. Instead of requiring the programmer to set timers to retrieve individual frames of the video stream from a shared memory buffer, the high-level API will allow the programmer to work with a platform appropriate user interface element (a UIView for iOS, an NSView for MacOS, a TextureView for Android and a Form for .NET/Windows) containing the video stream being rendered.