MediaElement

MediaElement est une commande de lecture vidéo et audio. Les médias pris en charge par la plateforme sous-jacente peuvent être lus à partir des sources suivantes :

  • Le Web, à l’aide d’un URI (HTTP ou HTTPS).
  • Une ressource intégrée dans l’application de la plate-forme, utilisant le schéma URI embed://.
  • Fichiers provenant du système de fichiers local de l’application, utilisant le schéma URI filesystem://.
  • Toute source valide via un Stream.

MediaElement peut utiliser les commandes de lecture de la plate-forme, qui sont appelées commandes de transport. Cependant, ils sont désactivés par défaut et peuvent être remplacés par vos propres contrôles de transport. Les captures d’écran suivantes montrent MediaElement en train de lire une vidéo avec les commandes de transport de la plateforme :

Capture d’écran d’un MediaElement lisant une vidéo, sur Android et iOS.

Note

MediaElement est disponible sur iOS, Android, Windows, macOS et Tizen.

Le MediaElement utilise les implémentations de plate-forme suivantes.

Plateforme Mise en œuvre du lecteur multimédia de la plateforme
Android ExoPlayer, un grand merci à ceux qui assurent la maintenance des Bibliothèques Android !
iOS/macOS AVPlayer
Windows MediaPlayer

Prise en main

Pour utiliser la fonction MediaElement de la boîte à outils communautaire MAUI .NET, vous devez suivre les étapes suivantes.

Installer le package NuGet

Avant de pouvoir utiliser MediaElement au sein de votre application, vous devez installer le package CommunityToolkit.Maui.MediaElementNuGet et ajouter une ligne d’initialisation dans votre fichier MauiProgram.cs. Comme suit :

Nom du package :CommunityToolkit.Maui.MediaElement

URL du package :https://www.nuget.org/packages/CommunityToolkit.Maui.MediaElement

Initialisation du package

Tout d'abord, vous devez ajouter l'instruction « using » en haut de votre fichier MauiProgram.cs.

using CommunityToolkit.Maui.MediaElement;

Pour utiliser MediaElement correctement, la méthode UseMauiCommunityToolkitMediaElement doit être appelée sur la classe MauiAppBuilder lors de l'amorçage du fichier MauiProgram.cs d'une application. L'exemple suivant montre comment effectuer cette opération.

Importante

Si vous avez besoin de notifications multimédias riches ou de lecture en arrière-plan sur Android, fixez enableForegroundService à true lors de l’appel de UseMauiCommunityToolkitMediaElement. MediaElement ne nécessite pas d’ajout d’autorisations supplémentaires AndroidManifest.xml pour le service de premier plan. Quand enableForegroundService est défini à true, la boîte à outils ajoutera automatiquement toutes les entrées de manifeste Android requises pour le service de premier plan et les notifications. Si vous n’avez pas besoin de lecture en arrière-plan, vous pouvez définir cette valeur sur false. Si vous ne parvenez pas à appeler cette méthode, une exception est levée lorsque vous essayez d'utiliser le MediaElement.

var builder = MauiApp.CreateBuilder();
builder
    .UseMauiApp<App>()
    .UseMauiCommunityToolkitMediaElement(enableForegroundService: true); // Set to `false` if Rich Notifications and background playback is not required

Pour plus d'informations sur la procédure à suivre, reportez-vous à la page Prise en main.

Initialisation spécifique à la plateforme

Pour accéder à la fonctionnalité MediaElement, la configuration suivante spécifique à la plateforme est obligatoire.

Lorsque vous utilisez MediaElement, il est essentiel d’effectuer les étapes suivantes :

1. Ajoutez ResizableActivity et Launchmode à l’activité

[Activity(Theme = "@style/Maui.SplashTheme", ResizeableActivity = true, MainLauncher = true, LaunchMode = LaunchMode.SingleTask)]
public class MainActivity : MauiAppCompatActivity
{
}

Pour un exemple complet de cette méthode incluse dans une application, veuillez vous référer à l’exemple d’application .NET MAUI Community Toolkit

Formats pris en charge

Les formats multimédias pris en charge peuvent varier d’une plateforme à l’autre. Dans certains cas, ils peuvent même dépendre des décodeurs disponibles ou installés sur le système d’exploitation utilisé lors de l’exécution de votre application. Pour obtenir des informations plus détaillées sur les formats pris en charge par chaque plateforme, veuillez consulter les liens ci-dessous.

Plateforme Lien Notes
Android Formats pris en charge par ExoPlayer
iOS/macOS Formats pris en charge par iOS/macOS Il n’existe aucune documentation officielle à ce sujet
Windows Formats supportés par Windows Sous Windows, les formats pris en charge dépendent fortement des codecs installés sur l’ordinateur de l’utilisateur.
Tizen Formats pris en charge par Tizen

Importante

Si l’utilisateur utilise une édition Windows N, aucune lecture vidéo n’est prise en charge par défaut. Les éditions N de Windows n’ont pas de formats de lecture vidéo installés par défaut.

Scénarios courants

Les sections suivantes décrivent les scénarios d’utilisation les plus courants de la fonction MediaElement

Lecture de médias distants

Un MediaElement peut lire des fichiers multimédias distants en utilisant les schémas URI HTTP et HTTPS. Pour ce faire, la propriété Source est remplacée par l’URI du fichier multimédia :

<toolkit:MediaElement Source="https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"
              ShouldShowPlaybackControls="True" />

Importante

Lors de la lecture de sources distantes à partir de points de terminaison HTTP, vous devrez probablement désactiver les mesures de sécurité du système d’exploitation qui empêchent l’accès à des points de terminaison Web non sécurisés. C’est le cas au moins pour iOS et Android.

Par défaut, la lecture du média défini par la propriété Source ne commence pas immédiatement après l’ouverture du média. Pour activer la lecture automatique des médias, réglez la propriété ShouldAutoPlay sur true.

Les contrôles de lecture multimédia fournis par la plate-forme sont activés par défaut et peuvent être désactivés en définissant la propriété ShouldShowPlaybackControls sur false.

Utiliser des notifications de contenu enrichi

Un MediaElement peut afficher des notifications multimédias enrichies sur Android, iOS, Mac Catalyst et Windows lorsque le média est en cours de lecture en arrière-plan. Pour activer les notifications multimédias enrichies, les étapes suivantes sont requises :

  1. Activez la lecture vidéo en arrière-plan en configurant le paramètre enableForegroundService à true lors de l'appel de la méthode UseMauiCommunityToolkitMediaElement dans MauiProgram.cs. Pour plus d’informations, reportez-vous à la section Initialisation du package ci-dessus.
  2. Configuration spécifique de la plateforme, comme décrit dans la section d’initialisation spécifique à la plateforme.
  3. Définissez les propriétés MetadataTitle, MetadataArtist et MetadataArtworkUrl pour fournir des métadonnées du média en cours de lecture, comme décrit dans la section Utilisation des métadonnées.

Service de premier plan sur Android

Pour activer la lecture en arrière-plan sur Android, définissez le paramètre enableForegroundService sur true lors de l'appel de la méthode UseMauiCommunityToolkitMediaElement dans MauiProgram.cs. MediaElement ne nécessite pas d’ajout d’autorisations supplémentaires AndroidManifest.xml pour le service de premier plan : l’appel de la méthode du générateur avec enableForegroundService: true est suffisant pour activer les fonctionnalités de notification et de lecture en arrière-plan. Quand enableForegroundService est défini à true, la boîte à outils ajoutera automatiquement toutes les entrées de manifeste Android requises pour le service de premier plan et les notifications. Si enableForegroundService est false et que vous tentez d’utiliser des fonctions de lecture en arrière-plan, une exception peut être levée sur Android.

Utilisation des métadonnées

Un MediaElement peut utiliser des métadonnées pour MediaElement.MetadataTitle, MediaElement.MetadataArtist et MediaElement.MetadataArtworkUrl. Vous pouvez ajuster le titre ou l'artiste pour afficher ce qui est actuellement joué sur les contrôles de l'écran de verrouillage pour Windows, Mac Catalyst, iOS et Android. Vous pouvez définir une URL locale ou distante avec une œuvre d’art pour le lockscreen. La qualité d’affichage doit être d’au moins 1080P. Il doit s’agir d’un URL et être soit .jpg, soit .png

<toolkit:MediaElement 
    MetadataTitle="Title"
    MetadataArtist="Artist"
    MetadataArtworkUrl="http://www.myownpersonaldomain.com/image.jpg" />
    MediaElement.MetadataTitle="Title";
    MediaElement.MetadataArtist="Artist";
    MediaElement.MetadataArtworkUrl="http://www.myownpersonaldomain.com/image.jpg";

Importante

Vous pouvez définir les métadonnées soit dans XAML soit dans le code. Si vous les définissez dans le code, vous devez définir la source dans le code. La source doit être définie en dernier. Si vous définissez les métadonnées dans XAML ou dans le constructeur, vous pouvez ignorer cette note.

Utilisation de TextureView

Un MediaElement peut utiliser TextureView sur la plateforme Android. Le comportement par défaut de la plateforme consiste à utiliser SurfaceView. L’utilisation de Texture View permet la prise en charge des transparences et d’autres effets. Cela est défini en modifiant le générateur à utiliser

.UseMauiCommunityToolkitMediaElement(static options => 
{
				options.SetDefaultAndroidViewType(AndroidViewType.TextureView);
})

Vous pouvez également définir TextureView pour chaque élément multimédia que vous utilisez. Cela peut être défini dans XAML et dans le code-behind. L'utilisation de cette manière remplacera la commande builder .UseMauiCommunityToolkitMediaElement().

var mediaElement = new MediaElement
{
    AndroidViewType = AndroidViewType.TextureView
}
<toolkit:MediaElement AndroidViewType="TextureView" />

Importante

Nous vous déconseillons d’utiliser TextureView, sauf si vous en avez besoin spécifique. Il présente des problèmes liés aux performances possibles s’ils sont activés et sont recommandés uniquement pour ceux qui ont besoin de transparences et d’autres fonctionnalités avancées.

Lecture de médias locaux

Les médias locaux peuvent être lus à partir des sources suivantes :

  • Une ressource intégrée dans l’application de la plate-forme, utilisant le schéma URI embed://.
  • Fichiers provenant du système de fichiers local de l’application, utilisant le schéma URI filesystem://.

Note

Le raccourci embed:// et filesystem:// uniquement quand il est défini à Source partir d’une chaîne en XAML. Dans le code, veuillez utiliser respectivement MediaSource.FromResource() et MediaSource.FromFile(). À l’aide de ces méthodes, vous pouvez omettre les préfixes et filesystem:// les embed:// préfixes. Le reste du chemin doit être identique. Les sources sauvegardées en flux ne disposent pas d’un raccourci XAML de style URI équivalent. Pour utiliser une source de flux avec XAML, liez Source une MediaSource instance créée dans le code.

Lire les médias intégrés dans le package de l’application

Un MediaElement peut lire des fichiers multimédias qui sont intégrés dans le package de l’application, en utilisant le schéma URI embed://. Les fichiers multimédias sont intégrés dans le package de l’application en les plaçant dans le projet de plateforme.

Pour activer un fichier multimédia pour la lecture à partir des ressources locales, ajoutez le fichier au dossier Resources/Raw de votre projet .NET MAUI. Lorsqu’un fichier est ajouté à la racine, l’URI est embed://MyFile.mp4.

Vous pouvez également placer les fichiers dans des sous-dossiers. Si MyFile.mp4 se trouve dans Resources/Raw/MyVideos, l’URI à utiliser avec MediaElement est embed://MyVideos/MyFile.mp4.

Vous trouverez ci-dessous un exemple d’utilisation de cette syntaxe en XAML.

<toolkit:MediaElement Source="embed://MyFile.mp4"
              ShouldShowPlaybackControls="True" />

Lire un média à partir d’un flux

Vous pouvez lire un média à partir d’un Streamscénario qui permet des scénarios où la capture et la lecture de bout en bout restent en mémoire.

Prenons l’exemple de capture d’une vidéo à l’aide MediaPickerde :

var videoResult = await MediaPicker.Default.CaptureVideoAsync(new MediaPickerOptions
{
    Title = "Capture Video"
});

if (videoResult is null)
{
    return;
}

videoResult est un FileResult, et son flux peut être lu par un MediaElement.

<toolkit:MediaElement x:Name="MyMediaElement" />

La copie vers un nouveau flux vous permet de réinitialiser la position sur 0 afin de pouvoir MediaElement la lire correctement. Conservez ce flux actif pendant la durée de lecture et supprimez-le lorsqu’il n’est plus nécessaire.

await using var stream = await videoResult.OpenReadAsync();
var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
memoryStream.Position = 0;

MyMediaElement.Source = MediaSource.FromStream(memoryStream);

Cela peut être particulièrement utile pour les scénarios avec des exigences de sécurité qui n’autorisent pas l’enregistrement de données en dehors de l’environnement bac à sable de l’application.

Comprendre les types de sources de médias

Un MediaElement peut lire des médias en définissant sa propriété Source sur un fichier multimédia distant ou local. La Source propriété est de type MediaSourceet cette classe définit quatre méthodes statiques :

  • FromFile, renvoie une instance FileMediaSource à partir d’un argument string.
  • FromUri, renvoie une instance UriMediaSource à partir d’un argument Uri.
  • FromResource, renvoie une instance ResourceMediaSource à partir d’un argument string.
  • FromStream, renvoie une instance StreamMediaSource à partir d’un argument Stream.

En outre, la classe MediaSource possède également des opérateurs implicites qui renvoient des instances MediaSource à partir d’arguments string et Uri.

Note

Lorsque la propriété Source est définie dans XAML, un convertisseur de type est invoqué pour renvoyer une instance MediaSource à partir d’une string ou d’une Uri.

La classe MediaSource possède également ces classes dérivées :

  • FileMediaSource, qui est utilisé pour spécifier un fichier multimédia local à partir d’un fichier string. Cette classe possède une propriété Path qui peut être définie comme string. En outre, cette classe dispose d’opérateurs implicites pour convertir un objet string en objet FileMediaSource et un objet FileMediaSource en objet string.
  • UriMediaSource, qui permet de spécifier un fichier multimédia distant à partir d’un URI. Cette classe possède une propriété Uri qui peut être définie comme Uri.
  • ResourceMediaSource, qui permet de spécifier un fichier intégré fourni par les fichiers de ressources de l’application. Cette classe possède une propriété Path qui peut être définie comme string.
  • StreamMediaSource, qui est utilisé pour spécifier un flux lu de manière incrémentielle à partir de la mémoire, d’un fichier ou d’une source distante.

Note

Lorsqu’un objet FileMediaSource est créé dans XAML, un convertisseur de type est invoqué pour renvoyer une instance FileMediaSource à partir d’un string.

Modifier le rapport d’aspect de la vidéo

La propriété Aspect détermine la manière dont le média vidéo sera mis à l’échelle pour s’adapter à la zone d’affichage. Par défaut, cette propriété est définie sur le membre de l’énumération AspectFit, mais elle peut être définie sur n’importe lequel des membres de l’énumération Aspect :

  • AspectFit indique que la vidéo sera au format letterbox, si nécessaire, pour s’adapter à la zone d’affichage, tout en préservant le rapport hauteur/largeur.
  • AspectFill indique que la vidéo sera coupée de manière à remplir la zone d’affichage, tout en préservant le rapport hauteur/largeur.
  • Fill indique que la vidéo sera étirée pour remplir la zone d’affichage.

Déterminer l’état de MediaElement

La classe MediaElement définit une propriété bindable en lecture seule appelée CurrentState, de type MediaElementState. Cette propriété indique l’état actuel du contrôle, par exemple si le média est en cours de lecture ou en pause, ou s’il n’est pas encore prêt à lire le média.

L'énumération MediaElementState définit les membres suivants :

  • None indique que le MediaElement ne contient pas de support.
  • Opening indique que le MediaElement est en train de valider et de tenter de charger la source spécifiée.
  • Buffering indique que le MediaElement est en train de charger le support pour la lecture. Sa propriété Position ne progresse pas pendant cet état. Si le MediaElement était en train de lire une vidéo, il continue d’afficher la dernière trame affichée.
  • Playing indique que le MediaElement est en train de lire la source multimédia.
  • Paused indique que le MediaElement ne fait pas progresser sa propriété Position. Si le MediaElement était en train de lire une vidéo, il continue d’afficher la trame en cours.
  • Stopped indique que le MediaElement contient un média mais qu’il n’est ni lu ni mis en pause. Sa propriété Position est réinitialisée à 0 et n’avance pas.
  • Failed indique que le MediaElement n’a pas réussi à charger ou à lire le média. Cela peut se produire lors de la tentative de chargement d’un nouvel élément multimédia, lors de la tentative de lecture de l’élément multimédia ou lorsque la lecture du média est interrompue en raison d’une défaillance. Utilisez l’événement MediaFailed pour obtenir des informations supplémentaires.

Il n’est généralement pas nécessaire d’examiner la propriété CurrentState lors de l’utilisation des contrôles de transport MediaElement. Cependant, cette propriété devient importante lorsque vous mettez en œuvre vos propres contrôles de transport.

Mise en œuvre de contrôles de transport personnalisés

Les contrôles de transport d’un lecteur multimédia comprennent les boutons qui exécutent les fonctions Lecture, Pause et Stop. Ces boutons sont habituellement identifiés par des icônes familières plutôt que du texte, et les fonctions Lecture et Pause sont généralement combinées en un seul bouton.

Par défaut, les commandes de transport MediaElement sont désactivées. Cela vous permet de contrôler le MediaElement de manière programmatique ou en fournissant vos propres commandes de transport. Pour ce faire, MediaElement comprend les méthodes Play, Pause et Stop.

L’exemple XAML suivant montre une page qui contient un MediaElement et des contrôles de transport personnalisés :

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
             x:Class="MediaElementDemos.CustomTransportPage"
             Title="Custom transport">
    <Grid>
        ...
        <toolkit:MediaElement x:Name="mediaElement"
                      ShouldAutoPlay="False"
                      ... />
        <HorizontalStackLayout BindingContext="{x:Reference mediaElement}"
                     ...>
            <Button Text="Play"
                    HorizontalOptions="Center"
                    Clicked="OnPlayPauseButtonClicked">
                <Button.Triggers>
                    <DataTrigger TargetType="Button"
                                 Binding="{Binding CurrentState}"
                                 Value="{x:Static toolkit:MediaElementState.Playing}">
                        <Setter Property="Text"
                                Value="Pause" />
                    </DataTrigger>
                    <DataTrigger TargetType="Button"
                                 Binding="{Binding CurrentState}"
                                 Value="{x:Static toolkit:MediaElementState.Buffering}">
                        <Setter Property="IsEnabled"
                                Value="False" />
                    </DataTrigger>
                </Button.Triggers>
            </Button>
            <Button Text="Stop"
                    HorizontalOptions="Center"
                    Clicked="OnStopButtonClicked">
                <Button.Triggers>
                    <DataTrigger TargetType="Button"
                                 Binding="{Binding CurrentState}"
                                 Value="{x:Static toolkit:MediaElementState.Stopped}">
                        <Setter Property="IsEnabled"
                                Value="False" />
                    </DataTrigger>
                </Button.Triggers>
            </Button>
        </HorizontalStackLayout>
    </Grid>
</ContentPage>

Dans cet exemple, les contrôles de transport personnalisés sont définis comme des objets Button. Cependant, il n’y a que deux objets Button, le premier Button représentant la Lecture et la Pause, et le second Button représentant la Arrêt. Les objets DataTrigger sont utilisés pour activer et désactiver les boutons, et pour faire basculer le premier bouton entre Lecture et Pause. Pour plus d’informations sur les déclencheurs de données, voir Déclencheurs .NET MAUI.

Le fichier code-behind contient les gestionnaires des événements Clicked :

void OnPlayPauseButtonClicked(object sender, EventArgs args)
{
    if (mediaElement.CurrentState == MediaElementState.Stopped ||
        mediaElement.CurrentState == MediaElementState.Paused)
    {
        mediaElement.Play();
    }
    else if (mediaElement.CurrentState == MediaElementState.Playing)
    {
        mediaElement.Pause();
    }
}

void OnStopButtonClicked(object sender, EventArgs args)
{
    mediaElement.Stop();
}

Il est possible d’appuyer sur le bouton Lecture, une fois qu’il est activé, pour commencer la lecture. Une pression sur le bouton Pause met la lecture en pause. L’appui sur le bouton Stop arrête la lecture et ramène la position du fichier multimédia au début.

Mettre en œuvre un contrôle de volume personnalisé

Les contrôles de lecture multimédia mis en œuvre par chaque plateforme comprennent une barre de volume. Cette barre ressemble à un curseur et indique le volume du média. En outre, vous pouvez manipuler la barre de volume pour augmenter ou diminuer le volume.

Une barre de volume personnalisée peut être mise en œuvre à l’aide d’un Slider, comme le montre l’exemple suivant :

<VerticalStackLayout>
    <toolkit:MediaElement ShouldAutoPlay="False"
                          Source="{StaticResource AdvancedAsync}" />
    <Slider Maximum="1.0"
            Minimum="0.0"
            Value="{Binding Volume}"
            Rotation="270"
            WidthRequest="100" />
</VerticalStackLayout>

Dans cet exemple, les données Slider lient leur propriété Value à la propriété Volume du MediaElement. Cela est possible parce que la propriété Volume utilise une liaison TwoWay. Par conséquent, la modification de la propriété Value entraînera la modification de la propriété Volume.

Note

La propriété Volume dispose d’un rappel de validation qui garantit que sa valeur est supérieure ou égale à 0,0 et inférieure ou égale à 1,0.

Pour plus d’informations sur l’utilisation d’un Slider, voir Slider .NET MAUI

Propriétés

Propriété Type Description Valeur par défaut
Aspect Aspect Détermine le mode de mise à l’échelle du média (visuel) actuellement chargé. Il s'agit d'une propriété pouvant être liée. Aspect.AspectFit
ÉtatActuel MediaElementState Indique l’état actuel du contrôle. Il s’agit d’une propriété en lecture seule, qui peut être liée. MediaElementState.None
Durée TimeSpan Indique la durée du média actuellement ouvert. Il s’agit d’une propriété en lecture seule, qui peut être liée. TimeSpan.Zero
Position TimeSpan Décrit la progression actuelle de la durée de lecture du média. Il s’agit d’une propriété en lecture seule, qui peut être liée. Si vous souhaitez définir la valeur Position, utilisez la méthode SeekTo(). TimeSpan.Zero
ShouldAutoPlay bool Indique si la lecture du média commencera automatiquement lorsque la propriété Source est définie. Il s'agit d'une propriété pouvant être liée. false
ShouldLoopPlayback bool Indique si la source multimédia actuellement chargée doit reprendre la lecture depuis le début après avoir atteint la fin. Il s'agit d'une propriété pouvant être liée. false
ShouldKeepScreenOn bool Détermine si l’écran de l’appareil doit rester allumé pendant la lecture du média. Il s'agit d'une propriété pouvant être liée. false
ShouldMute bool Détermine si le son est actuellement coupé. Il s'agit d'une propriété pouvant être liée. false
ShouldShowPlaybackControls bool Détermine si les contrôles de lecture des plateformes sont affichés. Il s'agit d'une propriété pouvant être liée. Notez que sur iOS et Windows, les commandes ne sont affichées que pendant une brève période après l’interaction avec l’écran. Il n’existe aucun moyen de garder les commandes visibles en permanence. true
Source MediaSource? La source du média chargé dans le contrôle. null
Vitesse double Détermine la vitesse de lecture du média. Il s’agit d’une propriété liante. 1
MediaHeight int La hauteur du média chargé en pixels. Il s’agit d’une propriété en lecture seule, qui peut être liée. Cette fonctionnalité n’est pas signalée pour les médias non visuels et peut ne pas toujours être renseignée sur iOS/macOS pour le contenu diffusé en direct. 0
MediaWidth int La largeur du média chargé en pixels. Il s’agit d’une propriété en lecture seule, qui peut être liée. Cette fonctionnalité n’est pas signalée pour les médias non visuels et peut ne pas toujours être renseignée sur iOS/macOS pour le contenu diffusé en direct. 0
Volume double Détermine le volume du média, qui est représenté sur une échelle linéaire entre 0 et 1. Il s'agit d'une propriété pouvant être liée. 1

Événements

événement Description
MediaOpened Se produit lorsque le flux multimédia a été validé et ouvert.
MediaEnded Se produit lorsque la lecture du média par le MediaElement est terminée.
MediaFailed Se produit lorsqu’une erreur est associée à la source du média.
PositionChanged Se produit quand la valeur de propriété Position a été modifiée.
SeekCompleted Se produit lorsque le point de recherche d’une opération de recherche demandée est prêt pour la lecture.

Méthodes

événement Description
Lire Démarre la lecture du média chargé.
Suspendre Interrompt la lecture du média en cours.
Arrêter Arrête la lecture et réinitialise la position du média en cours.
SeekTo Prend une valeur TimeSpan pour définir la propriété Position et prend un CancellationToken pour annuler le Task.

Exemples

Vous trouverez des exemples de ce contrôle en action dans l'Exemple d'application du kit d'outils de la communauté .NET MAUI.

API

Vous pouvez trouver le code source deMediaElement sur le référentiel du kit de ressources de la communauté .NET MAUI sur GitHub.