Разработка простого медиа - плеера в среде Visual Studio 2010 используя Silverlight
17.Добавим в эти события код:
private void PositionSlider_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
mediaElement1.Position = TimeSpan.FromSeconds(Convert.ToInt64
(PositionSlider.Value * mediaElement1.NaturalDuration.TimeSpan.TotalSeconds));
Timer.Text = string.Format("{0:00}:{1:00}",
mediaElement1.Position.Minutes, mediaElement1.Position.Seconds);
mediaElement1.Play();
}
private void PositionSlider_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
mediaElement1.Pause();
}Данный фрагмент кода устанавливает положение воспроизводимого меди-файла на основе элемента управления PositionSlider. Элементу управления Timer присваиваются значения минут, секунд воспоизводимого видео.
18.Добавим в событие UserControl_Loaded следующий фрагмент кода:
PositionSlider.Value = 0;
PositionSlider.Minimum = 0;
PositionSlider.Maximum = 1;
PositionSlider.LargeChange = 0.10;
PositionSlider.SmallChange = 0.01;Теперь сделаем так, что бы значение элемента управления PositionSlider и Timer изменялось по ходу воспроизведения видео.
19.Подключаем пространство имен ( NameSpace ):
using System.Windows.Threading;
20.Создадим объект класса DispatcherTimer:
DispatcherTimer VideoTimer;
21.В событие UserControl_Loaded добавим следующие строчки кода:
VideoTimer = new DispatcherTimer();
VideoTimer.Interval = TimeSpan.FromMilliseconds(50);
VideoTimer.Tick += new EventHandler(VideoTimer_Tick);В данном фрагменте кода создается новый объект класса DispatcherTimer, после чего задается интервал выполнения события VideoTimer_Tick равный 50 миллисекундам ( TimeSpan.FromMilliseconds(50) ).
22.Теперь, создадим событие VideoTimer_Tick
void VideoTimer_Tick(object sender, EventArgs e)
{
if (mediaElement1.NaturalDuration.TimeSpan.TotalSeconds > 0)
{
Timer.Text = string.Format("{0:00}:{1:00}",
mediaElement1.Position.Minutes, mediaElement1.Position.Seconds);
PositionSlider.Value = mediaElement1.Position.TotalSeconds /
mediaElement1.NaturalDuration.TimeSpan.TotalSeconds;
}
}В данном фрагменте будет осуществляться синхронизация таймера ( Timer ) и полоски воспроизведения ( PositionSlider ) с воспроизводимым видео.
23.Создадим событие CurrentStateChanged элемента управления "MediaElement":
24.Добавим в событие CurrentStateChanged код:
private void mediaElement1_CurrentStateChanged(object sender, RoutedEventArgs e)
{
if (mediaElement1.CurrentState == MediaElementState.Playing)
{
VideoTimer.Start();
}
else
{
VideoTimer.Stop();
}
}В данном фрагменте кода запускается или останавливается событие VideoTimer_Tick.
25.Запустим приложение. Откроется окно браузера и начнется воспроизведение видео-файла "test.wmv":

