A Blazor sample application demonstrating how to integrate Vonage Video API for real-time video communications. This sample provides a complete implementation of video sessions, streaming, recording, and archive management.
- .NET 9.0 or later
- A Vonage Video API account
- A Vonage Application with enabled Video capabilities. Check our Getting started guide.
Open the appsettings.json
file and add your Vonage credentials:
{
"vonage": {
"Application.Id": "Your AppId",
"Application.Key": "Your PrivateKey"
}
}
dotnet run
The application will start and be available at https://localhost:7145
(specified in launchSettings.json
).
When you first launch the application, you'll be presented with two options:
- Create New Session: Start as a moderator with full control over the session.
- Join Existing Session: Enter an existing session ID to join as a participant.
Once in a session, you can:
- Click "Start Stream" to begin sending your video and audio feed
- View other participant's video feeds in real-time
- Control your own audio/video settings
As a moderator, you have additional capabilities:
- Start archiving: Begin recording the current session
- Stop archiving: End the current recording
- Add experience composer: Include video content from an external URL into the session, as a new participant
Navigate to the Archives page to:
- View all recordings associated with your account
- See detailed information including:
- Creation date and time
- Archive name/ID
- Recording status
- Duration
- Watch recorded sessions directly in the browser
Invalid Credentials Error
- Verify your Application ID and Private Key in
appsettings.json
- Ensure your Vonage account is active and has Video API access
We welcome contributions! Please feel free to submit issues, feature requests, or pull requests to help improve this sample.
This project is licensed under the MIT License - see the LICENSE file for details.
For Vonage Video API specific questions, visit the Vonage Developer Documentation.
For issues with this sample, please create an issue in this repository.