#
Player sample
This guide will help you create a simple video player using the Media Blocks SDK .Net.
#
Required media blocks
To create a video player, you need to add the following blocks to the pipeline:
- Universal source - to read the video file.
- Video renderer - to display the video.
- Audio renderer - to play the audio.
#
Pipeline creation
First, we need to create a pipeline.
using VisioForge.Core.MediaBlocks;
var pipeline = new MediaBlocksPipeline();
The UniversalSourceBlock
can be used to play files and network streams.
To handle the pipeline errors, you can subscribe to the `OnError` event.
```csharp
pipeline.OnError += (sender, args) =>
{
Console.WriteLine(args.Message);
};
Also, you can subscribe to the OnStart
and OnStop
events.
#
Adding blocks
We need to create an instance of block settings to add most blocks. For UniversalSourceBlock, we need to pass the file path.
var sourceSettings = await UniversalSourceSettings.CreateAsync(new Uri(edFilename.Text));
var fileSource = new UniversalSourceBlock(sourceSettings);
During the UniversalSourceSettings
creation, SDK will open the file and read the video/audio stream information.
Now, let's add the video renderer.
```csharp
var videoRenderer = new VideoRendererBlock(_pipeline, VideoView1);
The VideoRendererBlock
constructor has two parameters: the pipeline and the VideoView
control to render the video.
Finally, let's add the audio renderer.
We'll enumerate available audio renderers and select the first one.
var audioRenderers = await DeviceEnumerator.Shared.AudioOutputsAsync();
var audioRenderer = new AudioRendererBlock(audioRenderers[0]);
#
Connecting blocks
Now, we need to connect the blocks.
pipeline.Connect(fileSource.VideoOutput, videoRenderer.Input);
pipeline.Connect(fileSource.AudioOutput, audioRenderer.Input);
The UniversalSourceBlock
has two outputs: VideoOutput
and AudioOutput
. We need to connect them to the video and audio renderers, respectively.
You can connect only one output if the file has only video or audio.
You can check the audio/video streams available using the ReadInfoAsync
method of the UniversalSourceSettings
class.
#
Start the pipeline
To start the pipeline, call the StartAsync
method.
await pipeline.StartAsync();
You'll see the video from the file on the screen.
#
Stop the pipeline
To stop the pipeline, call the StopAsync
method.
await pipeline.StopAsync();
Please check the complete source code on GitHub.