Saltar a contenido

Media Player SDK para C# .NET — Reproductor de Video, Reproductor de Audio y API de Streaming

Media Player SDK .NET

Introducción

El Media Player SDK para .NET es una API de reproductor de video en C# que te permite reproducir archivos de video y audio, streams de red (RTSP, HLS, MPEG-DASH) y contenido especial como videos de 360 grados en tus aplicaciones .NET. Reemplaza el código de reproducción DirectShow de bajo nivel y la integración con Windows Media Player SDK con una API async moderna — abre un archivo, inicia la reproducción y controla la búsqueda y el volumen en pocas líneas de C#.

El SDK usa decodificación basada en GStreamer con aceleración por hardware y se ejecuta en Windows, macOS, Linux, Android e iOS. Ya sea que necesites construir un reproductor de video de escritorio, integrar reproducción de medios en una app de kiosko o transmitir feeds RTSP desde cámaras IP, la API lo cubre.

Inicio Rápido

1. Instalar Paquetes NuGet

dotnet add package VisioForge.DotNet.MediaPlayer

Agrega dependencias nativas específicas de plataforma:

<!-- Windows x64 -->
<PackageReference Include="VisioForge.CrossPlatform.Core.Windows.x64" Version="2025.11.0" />
<PackageReference Include="VisioForge.CrossPlatform.Libav.Windows.x64" Version="2025.11.0" />

<!-- macOS -->
<PackageReference Include="VisioForge.CrossPlatform.Core.macOS" Version="2025.9.1" />

<!-- Linux x64 -->
<PackageReference Include="VisioForge.CrossPlatform.Core.Linux.x64" Version="2025.11.0" />
<PackageReference Include="VisioForge.CrossPlatform.Libav.Linux.x64" Version="2025.11.0" />

Para la lista completa de paquetes y soporte de frameworks de UI (WinForms, WPF, MAUI, Avalonia), consulta la Guía de Instalación.

2. Inicializar el SDK

Llama a InitSDKAsync() una vez al iniciar la aplicación antes de usar cualquier funcionalidad de reproducción:

using VisioForge.Core;

await VisioForgeX.InitSDKAsync();

3. Reproducir Video en C# (Ejemplo Mínimo)

using VisioForge.Core;
using VisioForge.Core.MediaPlayerX;
using VisioForge.Core.Types.X.Sources;

// Crear instancia del reproductor vinculada a un control VideoView
var player = new MediaPlayerCoreX(videoView);

// Abrir un archivo de video
var source = await UniversalSourceSettings.CreateAsync(
    new Uri("C:\\Videos\\sample.mp4"));
await player.OpenAsync(source);

// Iniciar reproducción
await player.PlayAsync();

// ... cuando termine:
await player.StopAsync();
await player.DisposeAsync();

4. Limpieza al Cerrar

VisioForgeX.DestroySDK();

Flujo de Trabajo Principal

Toda aplicación de reproductor de medios sigue el mismo patrón:

  1. Inicializar SDKVisioForgeX.InitSDKAsync() (una vez por vida de la aplicación)
  2. Crear reproductornew MediaPlayerCoreX(videoView) para video, o sin vista para solo audio
  3. Abrir medioawait player.OpenAsync(source) con una ruta de archivo o URL de stream
  4. Reproducirawait player.PlayAsync()
  5. Controlar reproducción — buscar con Position_SetAsync(), pausar con PauseAsync(), ajustar volumen
  6. Detenerawait player.StopAsync()
  7. Liberarawait player.DisposeAsync() libera todos los recursos
  8. Destruir SDKVisioForgeX.DestroySDK() al cerrar la aplicación

Escenarios Comunes de Reproductor de Video en C

Reproducir Archivo de Video en C# (MP4, AVI, MKV)

Abre y reproduce cualquier archivo de video soportado con detección automática de codecs:

var source = await UniversalSourceSettings.CreateAsync(
    new Uri("movie.mp4"));
await player.OpenAsync(source);
await player.PlayAsync();

Ver tutorial completo: Construir un Reproductor de Video en C#

Reproducir Stream RTSP en C

Reproduce video en vivo desde cámaras IP y fuentes RTSP. Soporta RTSP, HTTP, HLS y MPEG-DASH:

var source = await UniversalSourceSettings.CreateAsync(
    new Uri("rtsp://admin:password@192.168.1.100:554/stream"));
await player.OpenAsync(source);
await player.PlayAsync();

Reproducción Solo de Audio

Reproduce archivos de audio (MP3, AAC, FLAC, WAV) sin vista de video:

var player = new MediaPlayerCoreX(); // no se necesita VideoView
var source = await UniversalSourceSettings.CreateAsync(
    new Uri("music.mp3"));
await player.OpenAsync(source);
await player.PlayAsync();

Extraer Fotograma del Video

Captura una imagen fija de la posición de reproducción actual:

// Obtener el fotograma actual como bitmap de SkiaSharp
var frame = await player.Snapshot_GetAsync();
if (frame != null)
{
    using var data = frame.Encode(SKEncodedImageFormat.Jpeg, 85);
    using var stream = File.OpenWrite("screenshot.jpg");
    data.SaveTo(stream);
}

Ver: Obtener un Fotograma Específico de un Archivo de Video

Control de Búsqueda, Volumen y Velocidad

// Buscar una posición específica
await player.Position_SetAsync(TimeSpan.FromSeconds(30));

// Obtener posición actual y duración
var position = await player.Position_GetAsync();
var duration = await player.DurationAsync();

// Ajustar volumen (0.0 a 1.0)
player.Audio_OutputDevice_Volume = 0.8;

// Cambiar velocidad de reproducción (0.25x a 4.0x)
await player.Rate_SetAsync(1.5);

Reproducción en Bucle y Reproducción de Segmentos

Reproduce un segmento específico de un archivo o repite continuamente:

// Habilitar modo bucle
player.Loop = true;

// Reproducir un rango de tiempo específico
player.StartPosition = TimeSpan.FromSeconds(10);
player.StopPosition = TimeSpan.FromSeconds(60);

Ver: Modo Bucle y Reproducción por Rango de Posición

Formatos Soportados

Categoría Formatos
Contenedores de Video MP4, AVI, MKV, WMV, WebM, MOV, TS, MTS, FLV
Formatos de Audio MP3, AAC, WAV, WMA, FLAC, OGG, Vorbis
Codecs de Video H.264, H.265/HEVC, VP8, VP9, AV1, MPEG-2
Protocolos de Streaming RTSP, HTTP, HLS, MPEG-DASH

Soporte de Plataformas

Plataforma Frameworks de UI Notas
Windows x64 WinForms, WPF, WinUI, MAUI, Avalonia, Consola Conjunto completo de características incluyendo motor DirectShow
macOS MAUI, Avalonia, Consola Renderizado basado en AVFoundation
Linux x64 Avalonia, Consola Decodificación basada en GStreamer
Android MAUI Via integración MAUI
iOS MAUI Via integración MAUI

Para implementaciones multiplataforma, ver: Reproductor de Video Multiplataforma — Guía Avalonia & MAUI

Documentación para Desarrolladores

Guías

Ejemplos de Código

Despliegue

Recursos para Desarrolladores