Exemple : Universal Windows Platform (UWP) Media Player

Fichier MainPage.xaml

<Page
    x:Class="MediaPlayerApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:MediaPlayerApp"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>

        <CommandBar DefaultLabelPosition="Right" HorizontalAlignment="Left">
            <!-- Lors du clic la fonction Choose_File sera appelée -->
            <AppBarButton Icon="Add" Label="Choisir un fichier" Click="Choose_File"/>
        </CommandBar>

        <MediaPlayerElement x:Name="mediaPlayer" AreTransportControlsEnabled="True" Margin="0,40,0,0" />

    </Grid>
</Page>

La propriété Click de l'élément AppBarButton permet d'appeler la fonction Choose_File du fichier .cs lors d'un clic.

Le Code C#

using System;
using Windows.Media.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace MediaPlayerApp
{

    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }


        /// <summary>
        /// Ouverture du sélecteur de fichier et lecture du média sélectionné.
        /// <br />
        /// Méthode asynchrone (non bloquante)
        /// </summary>
        /// <param name="sender">Objet source</param>
        /// <param name="e">Evenement</param>
        private async void Choose_File(object sender, RoutedEventArgs e)
        {
 
            /* Ouvre le sélecteur de fichier */
            var openPicker = new Windows.Storage.Pickers.FileOpenPicker();

            /* Les formats acceptés par le sélecteur */
            openPicker.FileTypeFilter.Add(".mp4");
            openPicker.FileTypeFilter.Add(".mkv");
            openPicker.FileTypeFilter.Add(".avi");
            openPicker.FileTypeFilter.Add(".wmv");
            openPicker.FileTypeFilter.Add(".mp3");
            openPicker.FileTypeFilter.Add(".wma");
            
            /* Attente d'un nouveau fichier. Ouverture asynchrone */
            var file = await openPicker.PickSingleFileAsync();

            if (file != null)
            {
                /* Ouverture et lecture du fichier */
                mediaPlayer.Source = MediaSource.CreateFromStorageFile(file);
                mediaPlayer.MediaPlayer.Play();
            }
        }

    }
}

Commentaires