Traduction

Ce tutoriel est la traduction la plus fidèle possible du tutoriel original de Peter Bull, Microsoft Silverlight 4 - Audio and Video Media Player using Silverlight.

Introduction

mPlayer est un lecteur de médias simple basé sur Silverlight avec la prise en charge de contenu audio et vidéo comprenant l'indicateur de lecture et les contrôles audio tels que volume, et plus encore !

Lecteur de médias audio et vidéo en Silverlight

Étape 1

Démarrez Microsoft Visual Web Developer 2010 Express, puis sélectionnez Fichier puis Nouveau Projet... Sélectionnez Visual Basic puis Application Silverlight dans les modèles installés, sélectionnez un emplacement si vous le souhaitez, puis entrez un nom pour le projet et appuyez sur OK :

Image non disponible

Étape 2

Une nouvelle fenêtre Nouvelle application Silverlight devrait apparaître, décochez la case Héberger l'application Silverlight sur un nouveau site Web, puis sélectionnez la Version de Silverlight ciblée :

Image non disponible

Étape 3

Une page vierge nommée MainPage.xaml devrait alors apparaître :

Image non disponible

Étape 4

Puis dans la section Tous les contrôles Silverlight de la Boîte à outils, sélectionnez le contrôle Canvas :

Image non disponible

Étape 5

Dessinez deux Canvas sur la page, ensuite dans le volet XAML au-dessus de </Grid> modifiez les lignes <Canvas> comme ceci :

 
Sélectionnez
<Canvas Height="35" Width="400" VerticalAlignment="Top" HorizontalAlignment="Left" Name="Toolbar"></Canvas>
<Canvas Height="35" Width="400" Margin="0,265,0,0" VerticalAlignment="Top" HorizontalAlignment="Left" Name="Playback"></Canvas>

Voir ci-dessous :

Image non disponible

Étape 6

Puis dans la section Contrôles Silverlight communs de la Boîte à outils, sélectionnez le contrôle Button :

Image non disponible

Étape 7

Dessinez trois boutons sur la « barre d'outils » du Canvas en glissant les boutons de la Boîte à outils sur le Canvas, ensuite dans le volet XAML entre les balises <Canvas> et </Canvas>, modifiez les lignes <Button> comme ceci :

 
Sélectionnez
<Button Canvas.Left="6" Canvas.Top="6" Height="23" Width="75" Name="Open" Content="Open..."/>
<Button Canvas.Left="87" Canvas.Top="6" Height="23" Width="75" Name="PlayPause" Content="Play Pause"/>
<Button Canvas.Left="168" Canvas.Top="6" Height="23" Width="75" Name="Stop" Content="Stop"/> 

Voir ci-dessous :

Image non disponible

Étape 8

Puis dans la section Tous les contrôles Silverlight de la Boîte à outils, sélectionnez le contrôle Slider :

Image non disponible

Étape 9

Dessinez un Slider sur le Canvas supérieur (barre d'outils) avec les boutons, et modifiez la ligne <Slider> comme ceci :

 
Sélectionnez
<Slider Canvas.Left="249" Canvas.Top="6" Height="23" Width="75" Minimum="-1" Maximum="1" Value="0" Name="Balance"/>

Ensuite dessinez deux Sliders de plus sur le Canvas inférieur (lecture), et modifiez les lignes <Slider> comme ceci :

 
Sélectionnez
<Slider Canvas.Left="6" Canvas.Top="6" Height="23" Width="237" Name="Position"/>
<Slider Canvas.Left="249" Canvas.Top="6" Height="23" Width="75" Minimum="0" Maximum="1" Value="0.5" Name="Volume"/>

Voir ci-dessous :

Image non disponible

Étape 10

Puis dans la section Tous les contrôles Silverlight de la Boîte à outils, sélectionnez le contrôle MediaElement :

Image non disponible

Étape 11

Dessinez un MediaElement sur la page entre les Canvas et dans le volet XAML modifiez la ligne <MediaElement> comme ceci :

 
Sélectionnez
<MediaElement Height="230" Width="400" Margin="0,35,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Stretch="Uniform" Name="Player"/>

Voir ci-dessous :

Image non disponible

Étape 12

Faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Afficher le code.

Dans la vue de code, en dessous de la ligne End Sub pour le constructeur Public Sub New() tapez les gestionnaires d'événements suivants :

 
Sélectionnez
Private Sub Player_MediaOpened(ByVal sender As Object, _
    ByVal args As RoutedEventArgs) _
    Handles Player.MediaOpened
  Position.Maximum = Player.NaturalDuration.TimeSpan.TotalMilliseconds
End Sub

Private Sub Player_MediaEnded(ByVal sender As Object, _
    ByVal args As RoutedEventArgs) _
    Handles Player.MediaEnded
  Player.Stop()
End Sub
Image non disponible

Étape 13

Retournez au concepteur de vues en sélectionnant l'onglet MainPage.xaml, ou faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Concepteur de vues.

Double-cliquez sur le bouton Open... et tapez ceci dans le Sub Open_Click Sub :

 
Sélectionnez
Dim OpenDialog As New OpenFileDialog
OpenDialog.Filter = "Audio|*.wma;*.mp3|Video|*.wmv;*mp4"
If OpenDialog.ShowDialog Then
  Try
    If OpenDialog.File.Exists Then
      Player.SetSource(OpenDialog.File.OpenRead())
    End If
  Catch ex As Exception
    'Ignore Errors
  End Try
End If
Image non disponible

Étape 14

Retournez au concepteur de vues en sélectionnant l'onglet MainPage.xaml, ou faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Concepteur de vues.

Double-cliquez sur le bouton Play Pause et tapez ceci dans le Sub PlayPause_Click :

 
Sélectionnez
If Player.CurrentState = MediaElementState.Playing Then
    Player.Pause()
Else
    Player.Play()
End If
Image non disponible

Étape 15

Retournez au concepteur de vues en sélectionnant l'onglet MainPage.xaml, ou faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Concepteur de vues.

Double-cliquez sur le bouton Stop et tapez ceci dans le Sub Stop_Click :

 
Sélectionnez
Player.Stop()
Image non disponible

Étape 16

Retournez au concepteur de vues en sélectionnant l'onglet MainPage.xaml, ou faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Concepteur de vues.

Double-cliquez sur le contrôle Slider « Balance », à la fin des boutons sur la barre d'outils Canvas et tapez ceci dans le Sub Balance_ValueChanged :

 
Sélectionnez
Player.Balance = Balance.Value
Image non disponible

Étape 17

Retournez au concepteur de vues en sélectionnant l'onglet MainPage.xaml, ou faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Concepteur de vues.

Double-cliquez sur le contrôle Slider « Position », qui est le plus grand Slider sur le Canvas Playback et tapez ceci dans le Sub Position_ValueChanged Sub :

 
Sélectionnez
Player.Position = TimeSpan.FromMilliseconds(CInt(Position.Value))
Image non disponible

Étape 18

Retournez au concepteur de vues en sélectionnant l'onglet MainPage.xaml, ou faites un clic droit sur la page ou sur l'entrée pour MainPage.xaml dans l'Explorateur de solutions et choisissez l'option Concepteur de vues.

Double-cliquez sur le contrôle Slider « Volume », qui est à côté du Slider « Position » et tapez ceci dans le Sub Volume_ValueChanged :

 
Sélectionnez
Player.Volume = Volume.Value
Image non disponible

Étape 19

Enregistrez le projet maintenant que vous avez terminé l'application Silverlight. Sélectionnez Debug ensuite Démarrer le débogage ou cliquez sur Démarrer le débogage :

Image non disponible

Une fois que vous l'aurez fait, ce qui suit apparaîtra dans une nouvelle fenêtre du navigateur :

Image non disponible

Étape 20

Vous pouvez ouvrir (en cliquant sur Open...) des fichiers audio et vidéo compatibles tels que Windows Media Audio/Video et MP3 :

Image non disponible

Étape 21

Fermez la fenêtre du navigateur en cliquant sur le bouton Fermer Image non disponible en haut à droite du navigateur Web pour Arrêter l'application.

Conclusion

Ceci est une application de lecture de médias simple. Essayez d'ajouter davantage de fonctionnalités telles que Fast Forward ou Rewind. Il est également possible de l'utiliser comme base pour un lecteur de médias hébergés afin de lire du contenu venant d'une adresse Web - personnalisez-la !

Liens

Remerciements

Je tiens ici à remercier Peter Bull de m'avoir autorisé à traduire son tutoriel.
Je remercie tomlev pour sa relecture technique et ses propositions.
Je remercie également ClaudeLELOUP pour sa relecture orthographique et ses propositions.