Intégrer les SDK VisioForge à des applications Uno Platform¶
Vue d'ensemble¶
Uno Platform est un puissant framework d'interface utilisateur multiplateforme qui permet aux développeurs de créer des applications natives mobiles, de bureau et embarquées à partir d'une seule base de code C# et XAML. VisioForge propose une prise en charge complète des applications Uno Platform via le paquet VisioForge.DotNet.Core.UI.Uno, qui contient des contrôles d'interface utilisateur spécialement conçus pour Uno Platform.
Nos SDK apportent de puissantes capacités multimédias sur toutes les plateformes prises en charge par Uno Platform :
Video Capture SDK .Net Video Edit SDK .Net Media Blocks SDK .Net Media Player SDK .Net
Plateformes prises en charge¶
Uno Platform avec les SDK VisioForge prend en charge :
- Windows Desktop — prise en charge native complète de WinUI 3 avec accélération matérielle
- Android — vues Android natives avec accélération matérielle MediaCodec
- iOS — UIKit natif avec accélération matérielle VideoToolbox
- macOS — prise en charge Mac Catalyst pour Apple Silicon et Intel
- Linux Desktop — rendu basé sur Skia avec GStreamer
Démarrage rapide¶
1. Installer les paquets NuGet¶
Ajoutez les paquets VisioForge essentiels à votre projet Uno Platform :
<ItemGroup>
<PackageReference Include="VisioForge.DotNet.Core.UI.Uno" Version="2026.*" />
<PackageReference Include="VisioForge.DotNet.Core" Version="2026.*" />
</ItemGroup>
2. Initialiser le SDK¶
Initialisez le SDK au démarrage de l'application. Vous pouvez utiliser la version synchrone ou asynchrone :
using VisioForge.Core;
// Initialisation synchrone
VisioForgeX.InitSDK();
// Ou initialisation asynchrone (recommandée)
await VisioForgeX.InitSDKAsync();
Libérez les ressources lorsque l'application se termine :
VisioForgeX.DestroySDK();
3. Ajouter VideoView au XAML¶
Ajoutez l'espace de noms VisioForge et le contrôle VideoView à votre XAML :
<Page x:Class="YourApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vf="using:VisioForge.Core.UI.Uno">
<Grid>
<vf:VideoView x:Name="videoView"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Black"/>
</Grid>
</Page>
Le contrôle VideoView s'adapte aux capacités de rendu natives de chaque plateforme tout en exposant une API cohérente pour votre code applicatif.
Implémentation de VideoView en code¶
Voici un exemple complet d'utilisation de VideoView avec le pipeline Media Blocks :
using VisioForge.Core;
using VisioForge.Core.MediaBlocks;
using VisioForge.Core.MediaBlocks.Sources;
using VisioForge.Core.MediaBlocks.VideoRendering;
using VisioForge.Core.Types.X.Sources;
public sealed partial class MainPage : Page
{
private MediaBlocksPipeline? _pipeline;
private UniversalSourceBlock? _source;
private VideoRendererBlock? _renderer;
public MainPage()
{
this.InitializeComponent();
this.Loaded += MainPage_Loaded;
this.Unloaded += MainPage_Unloaded;
}
private async void MainPage_Loaded(object sender, RoutedEventArgs e)
{
// Initialiser le SDK (une seule fois au démarrage de l'application)
await VisioForgeX.InitSDKAsync();
}
private async Task PlayMediaAsync(string mediaPath)
{
// Nettoyer le pipeline précédent, le cas échéant
await CleanupPipelineAsync();
// Créer le pipeline
_pipeline = new MediaBlocksPipeline();
// Créer les paramètres de la source — utiliser la méthode factory pour les URL ou les chemins de fichiers
// Lecture vidéo uniquement : désactiver l'audio puisque nous ne connectons pas de sortie audio
UniversalSourceSettings sourceSettings;
if (Uri.TryCreate(mediaPath, UriKind.Absolute, out var uri) && !uri.IsFile)
{
// Source URL
sourceSettings = await UniversalSourceSettings.CreateAsync(uri, renderAudio: false);
}
else
{
// Source par chemin de fichier
sourceSettings = await UniversalSourceSettings.CreateAsync(mediaPath, renderAudio: false);
}
// Créer les blocs source et moteur de rendu
_source = new UniversalSourceBlock(sourceSettings);
_renderer = new VideoRendererBlock(_pipeline, videoView);
// Connecter les blocs
_pipeline.Connect(_source.VideoOutput, _renderer.Input);
// Démarrer la lecture
await _pipeline.StartAsync();
}
private async Task CleanupPipelineAsync()
{
if (_pipeline != null)
{
await _pipeline.StopAsync();
await _pipeline.DisposeAsync();
_pipeline = null;
}
_source?.Dispose();
_source = null;
_renderer?.Dispose();
_renderer = null;
}
private async void MainPage_Unloaded(object sender, RoutedEventArgs e)
{
await CleanupPipelineAsync();
// Détruire le SDK à la fermeture de l'application
VisioForgeX.DestroySDK();
}
}
Applications d'exemple¶
Pour des exemples complets et du code d'exemple, consultez :
- Les applications d'exemple dans le dossier
_DEMOS/Media Blocks SDK/Uno/ - Les applications d'exemple dans le dossier
_DEMOS/Media Player SDK X/Uno/ - Les applications d'exemple dans le dossier
_DEMOS/Video Capture SDK X/Uno/ - Notre dépôt GitHub
Les exemples disponibles incluent :
- Simple Player — lecteur multimédia basique avec contrôles de lecture
- RTSP Viewer — visionneuse de flux pour caméras réseau
- Video Capture — capture caméra avec fonctionnalité d'enregistrement
Étapes suivantes¶
Pour les instructions complètes de déploiement, comprenant :
- Les paquets redistribuables spécifiques à la plateforme
- La configuration système requise
- Les commandes de build
- Les configurations spécifiques à la plateforme (permissions, capabilities, paramètres Info.plist)
- Le fichier projet d'exemple complet
- Le dépannage
Consultez le Guide de déploiement Uno Platform.