Traduction▲
Ce tutoriel est la traduction la plus fidèle possible du tutoriel original de Peter Bull, Windows Phone 7 - Audio and Video Media Player using Silverlight on Windows Phone 7.
Introduction▲
mPlayer est un lecteur de médias simple pour Windows Phone 7 avec la prise en charge de contenu audio et vidéo comprenant l'indicateur de lecture et le contrôle du volume.
Lecteur de médias audio et vidéo en utilisant Silverlight sur Windows Phone 7▲
Étape 1▲
Démarrez Microsoft Visual Web Developer 2010 Express pour Windows Phone, puis sélectionnez Fichier puis Nouveau Projet… Sélectionnez Visual C# puis Silverlight for Windows Phone puis Application Windows Phone 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 :
Étape 2▲
Une page Application Windows Phone nommée MainPage.xaml devrait alors apparaître :
Étape 3▲
Faites un clic droit sur le Projet dans l'Explorateur de solutions et choisissez Ajouter puis Nouveau dossier, et nommez-le images :
Étape 4▲
Téléchargez les images suivantes (play.png & stop.png) en faisant un clic droit sur les images ci-dessous et en choisissant « Enregistrer l'image sous… », puis enregistrez-les dans un dossier sur votre ordinateur :
play.png
stop.png
Étape 5▲
Faites un clic droit sur le dossier « images » du Projet dans l'Explorateur de solutions, et choisissez Ajouter, ensuite Elément existant… Puis dans la fenêtre Ajouter un élément existant…, sélectionnez le dossier dans lequel vous avez enregistré les images, ensuite choisissez Ajouter pour ajouter play.png et stop.png au dossier « images » dans le projet :
Étape 6▲
Puisque nous en sommes à l'Explorateur de solutions cliquez sur l'image « play.png », ensuite allez dans la boîte Propriétés et modifiez Action de génération à Contenu. Faites la même chose pour l'image « stop.png » :
Étape 7▲
Sélectionnez l'onglet MainPage.xaml s'il ne l'est pas déjà, ensuite dans le volet XAML pour MainPage.xaml, au-dessus de la ligne <Grid
x
:
Name
=
"LayoutRoot"
Background
=
"Transparent"
>
tapez le code ApplicationBar XAML suivant :
<
phone
:
PhoneApplicationPage.ApplicationBar>
<
shell
:
ApplicationBar
IsVisible
=
"True"
IsMenuEnabled
=
"False"
>
<
shell
:
ApplicationBar.Buttons>
<
shell
:
ApplicationBarIconButton
Text
=
"play"
IconUri
=
"/images/play.png"
Click
=
"Play_Click"
/>
<
shell
:
ApplicationBarIconButton
Text
=
"stop"
IconUri
=
"/images/stop.png"
Click
=
"Stop_Click"
/>
</
shell
:
ApplicationBar.Buttons>
</
shell
:
ApplicationBar>
</
phone
:
PhoneApplicationPage.ApplicationBar>
Étape 8▲
Puisque nous en sommes au volet XAML, entre les lignes <Grid
x
:
Name
=
"ContentGrid"
Grid.
Row
=
"1"
>
et </Grid>
tapez le code XAML suivant :
<Grid
x
:
Name
=
"ContentMain"
>
<Grid.RowDefinitions>
<RowDefinition
Height
=
"80"
/>
<RowDefinition
Height
=
"*"
/>
<RowDefinition
Height
=
"80"
/>
</Grid.RowDefinitions>
<Grid
x
:
Name
=
"Toolbar"
Grid.
Row
=
"0"
>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width
=
"*"
/>
<ColumnDefinition
Width
=
"Auto"
/>
</Grid.ColumnDefinitions>
<!-- Toolbar -->
</Grid>
<!-- Content -->
<Grid
x
:
Name
=
"Playback"
Grid.
Row
=
"2"
>
<Grid.ColumnDefinitions>
<ColumnDefinition
Width
=
"*"
/>
<ColumnDefinition
Width
=
"120"
/>
</Grid.ColumnDefinitions>
<!-- Playback -->
</Grid>
</Grid>
XAML :
Design :
Étape 9▲
Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle TextBox :
Étape 10▲
Dessinez un TextBox sur la section barre d'outils (plus petite section supérieure) du Grid sur la page, en dessous du titre de la page, et dans le volet XAML en dessous de la ligne <!-- Toolbar -->, modifiez TextBox1 comme ceci :
<TextBox Grid.
Column
=
"0"
Name
=
"Location"
>
<TextBox.InputScope>
<InputScope>
<InputScopeName
NameValue
=
"Url"
/>
</InputScope>
</TextBox.InputScope>
</TextBox>
Voir ci-dessous :
Étape 11▲
Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle Button :
Étape 12▲
Dessinez un bouton sur la section barre d'outils en glissant le bouton de la Boîte à outils sur la section barre d'outils du Grid sur la page, ensuite dans le volet XAML modifiez la ligne Button1 comme ceci :
<Button Grid.
Column
=
"1"
Content
=
"go"
Click
=
"Go_Click"
/>
Voir ci-dessous :
Étape 13▲
Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle Slider :
Étape 14▲
Dessinez deux Sliders sur la section Playback (la plus petite section inférieure) du Grid sur la page, en glissant les Sliders de la Boîte à outils sur cette section Playback, puis dans le volet XAML modifiez les lignes <Slider> comme ceci :
<Slider Grid.
Column
=
"0"
Minimum
=
"0"
Name
=
"Position"
/>
<Slider Grid.
Column
=
"1"
Minimum
=
"0"
Maximum
=
"1"
Value
=
"0.5"
Name
=
"Volume"
ValueChanged
=
"Volume_ValueChanged"
/>
Voir ci-dessous :
Étape 15▲
Puis dans la section Contrôles Windows Phone de la Boîte à outils, sélectionnez le contrôle MediaElement :
Étape 16▲
Dessinez un MediaElement sur la plus grande section du Grid sur la page (Content) en glissant un MediaElement sur la section Content de la page, ensuite dans le volet XAML modifiez la ligne <MediaElement> comme ceci :
<MediaElement Grid.
Row
=
"1"
Stretch
=
"Uniform"
Name
=
"Player"
/>
Voir ci-dessous :
Étape 17▲
Puisque nous en sommes au concepteur de vues pour MainPage.xaml, sélectionnez le TextBlock « nom de la page » (PageTitle), ensuite Supprimer ou faites un clic droit et choisissez l'option Supprimer pour que le MainPage.xaml apparaisse comme ci-dessous :
Étape 18▲
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, au-dessus de namespace mPlayer tapez ceci :
using
System.
Windows.
Threading;
Toujours dans la vue de code, au-dessus de public MainPage() tapez les déclarations suivantes :
DispatcherTimer _position =
new
DispatcherTimer
(
);
Étape 19▲
Puisque nous en sommes à la vue de code pour MainPage.xaml.cs, dans le constructeur public MainPage() en dessous de InitializeComponent(); tapez ceci :
ApplicationTitle.
Text =
"mPLAYER"
;
Player.
MediaOpened +=
(
object
s,
RoutedEventArgs args) =>
{
// Media Opened Event
Position.
Maximum =
(
int
)Player.
NaturalDuration.
TimeSpan.
TotalMilliseconds;
Player.
Play
(
);
};
Player.
MediaEnded +=
(
object
s,
RoutedEventArgs args) =>
{
// Media Ended Event
Player.
Stop
(
);
};
Player.
CurrentStateChanged +=
(
object
s,
RoutedEventArgs args) =>
{
// Media State Changed Event
if
(
Player.
CurrentState ==
MediaElementState.
Playing)
{
_position.
Start
(
);
}
else
{
_position.
Stop
(
);
}
};
_position.
Tick +=
(
object
s,
EventArgs args) =>
{
// Position Tick Event
Position.
Value =
(
int
)Player.
Position.
TotalMilliseconds;
};
Étape 20▲
Toujours au niveau de la vue de code pour MainPage.xaml.cs, au-dessus de public MainPage(), tapez les gestionnaires d'événements suivants :
private
void
Go_Click
(
object
sender,
RoutedEventArgs e)
{
Player.
Source =
new
Uri
(
Location.
Text,
UriKind.
Absolute);
}
private
void
Volume_ValueChanged
(
object
sender,
RoutedPropertyChangedEventArgs<
double
>
e)
{
if
(
Volume !=
null
)
{
Player.
Volume =
(
double
)Volume.
Value;
}
}
private
void
Play_Click
(
object
sender,
EventArgs e)
{
if
(
Player.
CurrentState ==
MediaElementState.
Playing)
{
Player.
Pause
(
);
}
else
{
Player.
Play
(
);
}
}
private
void
Stop_Click
(
object
sender,
EventArgs e)
{
Player.
Stop
(
);
}
Étape 21▲
Enregistrez le Projet maintenant que vous avez terminé l'application Windows Phone Silverlight. Sélectionnez l'option Windows Phone Emulator, ensuite sélectionnez Debug puis Démarrer le débogage ou cliquez sur Démarrer le débogage :
Dès que vous l'aurez fait, ce qui suit apparaîtra dans l'émulateur Windows Phone une fois chargé :
Étape 22▲
Appuyez sur le TextBox et saisissez l'adresse web d'une vidéo telle que celle-ci, ensuite cliquez sur le bouton go. Une fois chargée, la vidéo commencera à jouer :
Étape 23▲
Vous pouvez ensuite Arrêter l'application en sélectionnant la fenêtre d'application Visual Studio 2010 et en cliquant sur le bouton Arrêter le débogage :
Conclusion▲
Ceci est une application de lecture de médias simple. Essayez d'ajouter davantage de fonctionnalités telles que Fast Forward ou Rewind ou la possibilité de modifier la position du Playback en utilisant le Position Slider - 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 FirePrawn pour sa relecture orthographique et ses propositions.