Agora Video UI Kit for macOS
Instantly integrate Agora in your own application or prototype using macOS. For iOS, see VideoUIKit-iOS.
More information available on this repo's Wiki
Click here for full documentation
To see full documentation for other packages in this repo, such as AgoraBroadcastExtensionHelper
, AgoraAppGroupDataHelper
or AgoraRtmControl
, check them out here:
Requirements
- macOS 10.15 or later
- Xcode 12.3 or later
- CocoaPods (if installing with CocoaPods)
- An Agora developer account
Once you have an Agora developer account and an App ID, you're ready to use this package.
Installation
Swift Package Manager and CocoaPods are both available offered for installation methods.
The Pod for this package is called AgoraUIKit_macOS
.
See the Installation wiki page for more information on installing the package.
Usage
Once installed, open your application .xcodeproj
file. Or .xcworkspace
if using CocoaPods.
The main view for Agora UIKit is AgoraVideoViewer
. This is an example of a minimal creation that gives you a view similar to the one at the top of this README:
import AgoraRtcKit
import AgoraUIKit
let agoraView = AgoraVideoViewer(
connectionData: AgoraConnectionData(
appId: "<#my-app-id#>",
rtcToken: "<#my-channel-token#>",
rtmToken: "<#my-channel-rtm-token#>"
), delegate: self
)
Frame your newly created AgoraVideoViewer in the app scene, then join a channel by calling:
agoraView.join(channel: "test", as: .broadcaster)
More examples available on the wiki
Documentation
For full documentation, see our AgoraUIKit documentation page.
For other libraries in this package:
Error Handling and Troubleshooting
For tips on how to overcome some common errors, see the wiki page.
Known Issues
Icons may not display if SF Symbols is not installed.
Roadmap
- Muting/Unmuting a remote member
- Usernames (Settable value, not currently rendered)
- Promoting an audience member to a broadcaster role.
- Layout for Voice Calls
- Cloud recording
Other Video UI Kits
The plan is to grow this library and have similar offerings across all supported platforms. There are already similar libraries for iOS, Android, React Native, Flutter and Web React so be sure to check them out.
UML Diagrams
- AgoraUIKit
- AgoraRtmControl
generated with
swiftplantuml classdiagram Sources