Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/agoraio/video-sdk-samples-ios
https://github.com/agoraio/video-sdk-samples-ios
agora agora-sdk agoraio documentation examples ios swift swiftui video-streaming vonage
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/agoraio/video-sdk-samples-ios
- Owner: AgoraIO
- Created: 2023-04-03T15:22:07.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-19T13:07:19.000Z (about 1 year ago)
- Last Synced: 2023-10-19T14:11:08.781Z (about 1 year ago)
- Topics: agora, agora-sdk, agoraio, documentation, examples, ios, swift, swiftui, video-streaming, vonage
- Language: Swift
- Homepage: https://agoraio.github.io/video-sdk-samples-ios/
- Size: 2.92 MB
- Stars: 2
- Watchers: 8
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Video SDK for iOS reference app
This app demonstrates the using [Agora's Video SDK](https://docs.agora.io/en/video-calling/get-started/get-started-sdk)
for real-time communication in a SwiftUI app.This example app is a robust and comprehensive documentation reference app for iOS, designed to enhance your productivity and understanding. It's built to be flexible, easily extensible, and beginner-friendly.
To understand the contents better, you can go to [Agora's Documentation](https://docs.agora.io), which explains each example in more detail.
- [Samples](#samples-)
- [Prerequisites](#prerequisites)
- [Run this project](#run-this-project)
- [Screenshots](#screenshots)
- [Contact](#contact)## Samples
You'll find numerous examples illustrating the functionality and features of this reference app in the root directory. Each example is self-contained in its own directory, providing an easy way to understand how to use the app. For more information about each example, see the README file within its directory.
### Get Started
- [SDK quickstart](./get-started-sdk/)
- [Secure authentication with tokens](./authentication-workflow/)### Core Functionality
- [Connect through restricted networks with Cloud Proxy](./cloud-proxy/)
- [Stream media to a channel](./play-media/)
- [Secure channel encryption](./media-stream-encryption/)
- [Live streaming over multiple channels](./live-streaming-over-multiple-channels/)
- [Call quality best practice](./ensure-channel-quality/)
- [Screen share, volume control and mute](./product-workflow/)
- [Custom video and audio sources](./custom-video-and-audio/)
- [Raw video and audio processing](./stream-raw-audio-and-video/)### Integrate Features
- [Geofencing](./geofencing/)
- [Virtual background](./virtual-background/)## Prerequisites
Before getting started with this example app, please ensure you have the following software installed on your machine:
- Xcode 13.0 or later.
- Swift 5.5 or later.
- An iOS device or emulator running iOS 13.0 or later.## Run this project
1. **Clone the repository**
To clone the repository to your local machine, open Terminal and navigate to the directory where you want to clone the repository. Then, use the following command:
```sh
git clone https://github.com/AgoraIO/video-sdk-samples-ios.git
```2. **Open the project**
Navigate to [Example-App](Example-App), and open [Docs-Examples.xcodeproj](Example-App/Docs-Examples.xcodeproj).
> All dependencies are installed with Swift Package Manager, so will be fetched automatically by Xcode.3. **Update Signing**
As with any Xcode project, head to the target, "Signing & Capabilities", and add your team, and modify the bundle identifier to make it unique.
4. **Modify the project configuration**
The app loads connection parameters from the [`config.json`](./agora-manager/config.json) file. Ensure that the
file is populated with the required parameter values before running the application.- `uid`: The user ID associated with the application.
- `appId`: (Required) The unique ID for the application obtained from [Agora Console](https://console.agora.io).
- `channelName`: The default name of the channel to join.
- `rtcToken`:An token generated for `channelName`. You generate a temporary token using the [Agora token builder](https://agora-token-generator-demo.vercel.app/).
- `serverUrl`: The URL for the token generator. See [Secure authentication with tokens](authentication-workflow) for information on how to set up a token server.
- `tokenExpiryTime`: The time in seconds after which a token expires.If a valid `serverUrl` is provided, all samples use the token server to obtain a token except the **SDK quickstart** project that uses the `rtcToken`. If a `serverUrl` is not specified, all samples except **Secure authentication with tokens** use the `rtcToken` from `config.json`.
5. **Build and run the project**
To build and run the project, use the build button (Cmd+R) in Xcode. Select your preferred device/simulator as the scheme.
## Screenshots
| Landing page | Call quality best practice | Custom video and audio sources | Screen share, volume control and mute |
|:-:|:-:|:-:|:-:|
| ![Landing page of the application](Example-App/Docs-Examples/Documentation.docc/Resources/media/landing-page.png) | ![Two streams and quality details in the top left of each stream](Example-App/Docs-Examples/Documentation.docc/Resources/media/ensure-channel-quality.png) | ![Custom camera using the ultra wide iPhone capture](Example-App/Docs-Examples/Documentation.docc/Resources/media/custom-video-and-audio.png) | ![Local and remote olume control + screen sharing option](Example-App/Docs-Examples/Documentation.docc/Resources/media/product-workflow.png) |## Contact
If you have any questions, issues, or suggestions, please file an issue in our [GitHub Issue Tracker](https://github.com/AgoraIO/video-sdk-samples-ios/issues).