livedigital iOS SDK Architecture
Underlying dependencies
livedigitalSDK helps you to build a video conference application using relatively high-level abstractions. There are several underlying layers under the hood, that hide all the details of WebRTC usage, signaling and other low-level tasks. Here they are top to bottom:
| Component | Language |
|---|---|
| Application | Swift |
| livedigitalSDK | Swift |
| Mediasoup-Client-Swift | ObjC / Swift |
| libmediasoupclient | C++ |
| WebRTC | C++ / ObjC |
SDK architecture
LivedigitalClient is actually any class in the host app that wants to use livedigital service. Normally it will implement at least two protocols: LivedigitalEngineDelegate and ChannelSessionDelegate. An instance of StocklivedigitalEngine is also owned by LivedigitalClient.
You may connect to one or several channels. ChannelSession instance corresponds to such connection.
AudioSource and VideoSource correspond to microphone and camera respectively, which are used to broadcast media content into channel.
Peer instances correspond to other channel members. To manage subscription to someone’s audio or video stream, you use Consumer objects of this peer.