VAST.UI Libraries
The VAST.UI libraries provide media player controls for .NET applications across multiple UI frameworks. All libraries implement the IMediaPlayer interface for unified playback control, enabling consistent API usage across platforms.
Available Libraries
Library
Platform
Rendering
VAST.UI for MAUI
.NET MAUI (Android, iOS, macOS, Windows)
Platform-native (Metal, OpenGL, DirectX, TextureView)
VAST.UI for WinForms
Windows Forms
DirectX 11, GDI+
VAST.UI for WinUI
Windows App SDK (WinUI 3)
Direct3D 11 via Win2D, WriteableBitmap
VAST.UI for WPF
Windows Presentation Foundation
DirectX 11, WriteableBitmap
Common Features
All VAST.UI libraries share these core capabilities:
Feature
Description
Hardware Rendering
GPU-accelerated video rendering on supported platforms
Software Fallback
CPU-based rendering when hardware acceleration is unavailable
Pan/Tilt/Zoom
Interactive digital PTZ via mouse or touch gestures
Multiple Streams
Audio, video, and subtitle stream selection
Snapshots
Capture current video frame as JPEG
Playback Control
Play, pause, stop, seek, and playback rate adjustment
Network Statistics
Real-time monitoring of stream performance
Controls
The primary control for video playback. Provides a complete media player experience with:
Media source playback (RTSP, HLS, files, custom sources)
Audio volume and mute control
Playback rate control (slow motion, fast forward, rewind)
Full-screen mode
Subtitle rendering (WPF, MAUI)
Overlay support for custom graphics
VideoPreviewControl
A lightweight preview surface for video capture and mixing scenarios. Connect to capture devices by assigning the renderer:
videoCaptureSource.Renderer = preview.Renderer;
All MediaPlayerControl implementations share the IMediaPlayer interface:
Playback Properties
Events
Methods
Method
Description
Play
Start or resume playback
Pause
Pause playback
Stop
Stop playback and release resources
TakeSnapshot
Capture current frame as JPEG
PlaybackParameters
Configure low-level playback behavior using PlaybackParameters :
player.PlaybackParameters = new PlaybackParameters
{
RenderingStrategy = RenderingStrategy.LowLatency,
VideoRendererType = VideoRendererType.Auto,
AllowDigitalPTZ = true,
};
Key Parameters
Parameter
Type
Default
Description
AllowDigitalPTZ
bool
false
Enable pan, tilt, and zoom via gestures
RenderingStrategy
RenderingStrategy
LowLatency
Frame timing optimization
VideoRendererType
VideoRendererType
Auto
Renderer selection
CleanupOnStop
bool
true
Clear video surface when playback stops
MirrorX
bool
false
Flip video horizontally
MirrorY
bool
false
Flip video vertically
Rendering Strategies
Strategy
Description
LowLatency
Frames rendered immediately when decoded. Best for live streams.
Smooth
Frame timing based on timestamps. Best for VOD content.
Renderer Types
Type
Description
Auto
Automatically select the best available renderer
Best
Force hardware-accelerated rendering
Compatible
Use software rendering fallback
Feature
WPF
WinForms
WinUI
MAUI
Hardware Rendering
DirectX 11
DirectX 11
Direct3D 11
Platform-native
Software Fallback
WriteableBitmap
GDI+
WriteableBitmap
Platform-native
Subtitles
Yes
No
No
No
Overlays
BitmapSource
Bitmap
No
No
Playback Controls Bar
No
Yes
No
No
Touch Gestures
No
No
No
Yes
Mouse Gestures
Yes
Yes
Yes
Yes (Windows)
Designer Support
XAML
WinForms Designer
XAML
XAML
Choosing a Library
Scenario
Recommended Library
New Windows desktop app
WPF or WinUI
Legacy Windows Forms app
WinForms
Cross-platform mobile/desktop
MAUI
Modern Windows 10/11 app
WinUI
App with subtitle requirements
WPF
See Also