Автор работы: Пользователь скрыл имя, 27 Января 2013 в 13:22, курсовая работа
Задачей для данной курсовой работы является разработка алгоритма и создание программного пакета, который бы осуществлял:
- открытие мультимедиа файлов
- воспроизведение аудио
- воспроизведение видео
- создание дружественного пользовательского интерфейса
ВВЕДЕНИЕ_______________________________________________________3
ПОСТАНОВКА ЗАДАЧИ__________________________________________4
2. ОПИСАНИЕ РАЗРАБОТАННЫХ АЛГОРИТМОВ РЕШЕНИЯ ПОСТАВЛЕННОЙ ЗАДАЧИ____________________________________________4
2.1 Алгоритм обработчика кнопки Play and Pause_______________________4
2.2 Алгоритм обработчика кнопки Stop _______________________________5
2.3 Алгоритм обработчика кнопки Back _______________________________6
2.4 Алгоритм обработчика кнопки Forward____________________________6
2.5 Алгоритм обработчика кнопки Exit________________________________7
2.6 Алгоритм обработчика кнопки Repeat______________________________8
2.7 Алгоритм обработчика кнопки Open_______________________________8
2.8 Алгоритм обработчика кнопки LeftAlt_____________________________9
2.9 Алгоритм обработчика слайдера Volume___________________________9
2.10 Алгоритм обработчика слайдера TimeSlider_______________________10
3. КРАТКОЕ ОПИСАНИЕ МЕТОДОВ И ФУНКЦИЙ_____________________10
4. ОПИСАНИЕ ПРОГРАММЫ________________________________________12
4.1 Общие сведения_______________________________________________12
4.2 Описание управляющего меню___________________________________12
ВЫВОД_____________________________________________________________13
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ_____________________________14
ПРИЛОЖЕНИЕ A. ЛИСТИНГ ПРОГРАММЫ ДЛЯ ЗАДАНИЯ №1__________15
ПРИЛОЖЕНИЕ Б. ЛИСТИНГ ПРОГРАММЫ ДЛЯ ЗАДАНИЯ №2__________19
4. ОПИСАНИЕ ПРОГРАММЫ
4.1 Общие сведения
Данный программный пакет
4.2 Описание управляющего меню
Для облегчения работы пользователя было создано управляющее меню в графическом режиме. Меню состоит из набора кнопок, меток и слайдеров. Взаимодействие с элементами меню происходит с помощью plug & play устройств. По прошествии некоторого времени меню скрывается, для меньшего захламления рабочей области приложения, вернуть меню можно наведя указатель на то место где находится его контейнер.
ВЫВОД
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ А
Листинг программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Threading;
using System.Windows.Media.
namespace MediaSampleWPF
{
public partial class Window1 : Window
{
#region Constructor
public Window1()
{
InitializeComponent();
IsPlaying(false);
button_return();
}
#endregion
#region IsPlaying(bool)
private void IsPlaying(bool bValue)
{
btnStop.IsEnabled = bValue;
btnMoveBackward.IsEnabled = bValue;
btnMoveForward.IsEnabled = bValue;
btnPlay.IsEnabled = bValue;
repeate.IsEnabled = bValue;
if(bValue==true)
timer();
// slider2.Maximum = MediaEL.NaturalDuration.
}
#endregion
#region Buttons
#region Play and Pause
bool flag = false;
private void btnPlay_MouseLeftButtonUp(obje
{
ImageBrush ib = new ImageBrush();
IsPlaying(true);
if (flag == false)
{
ib.ImageSource = new BitmapImage(new Uri("pack://application:,,,/
MediaEL.Play();
btnPlay.Fill = ib;
if (MediaEL.HasVideo == false)
label2.Visibility = Visibility.Visible;
else
label2.Visibility = Visibility.Hidden;
flag = true;
}
else
{
MediaEL.Pause();
ib.ImageSource = new BitmapImage(new Uri("pack://application:,,,/
btnPlay.Fill = ib;
flag = false;
}
}
#endregion
#region Stop
private void btnStop_MouseLeftButtonUp(obje
{
MediaEL.Stop();
IsPlaying(false);
ImageBrush ib = new ImageBrush();
ib.ImageSource = new BitmapImage(new Uri("pack://application:,,,/
btnPlay.Fill = ib;
flag = false;
btnPlay.IsEnabled = true;
}
#endregion
#region Back and Forward
private void btnMoveForward_Click(object sender, MouseButtonEventArgs e)
{
MediaEL.SpeedRatio *=2;
}
private void btnMoveBackward_Click(object sender, MouseButtonEventArgs e)
{
MediaEL.SpeedRatio/=2;
}
#endregion
#region exit
private void exit_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
this.Close();
}
#endregion
#region return
public void button_return()
{
shadow7.Color = Colors.Aqua;
}
bool flag_repeate = false;
private void repeate_MouseLeftButtonUp(obje
{
if (flag_repeate != true)
{
shadow7.Color = Colors.Red;
flag_repeate = true;
}
else
{
flag_repeate = false;
shadow7.Color = Colors.Aqua;
}
}
#endregion
#endregion
#region Open Media
private void btnOpen_Click(object sender, MouseButtonEventArgs e)
{
System.Windows.Forms.OpenFileD
ofd.Filter = "Video Files|*.avi;*.mpeg;*.wmv|"+
"Music Files|*.mp3;*.wma|"+
"All Files|*.*";
if (ofd.ShowDialog() == System.Windows.Forms.DialogRes
{
MediaEL.Source = new Uri(ofd.FileName);
btnPlay.IsEnabled = true;
}
}
private void MediaEL_MediaOpened(object sender, RoutedEventArgs e)
{
slider2.Maximum = MediaEL.NaturalDuration.
}
#endregion
#region Мaximize
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.SystemKey == Key.LeftAlt)
if (this.WindowStyle != WindowStyle.None)
{
this.WindowStyle = WindowStyle.None;
this.WindowState = WindowState.Maximized;
this.Topmost = true;
}
else
{
this.WindowStyle = WindowStyle = WindowStyle.
this.WindowState = WindowState.Normal;
this.Topmost = false;
}
}
#endregion
#region volume
private void slider1_ValueChanged(object sender, RoutedPropertyChangedEventArgs
{
MediaEL.Volume = slider1.Value;
}
#endregion
#region timeline
void timer()
{
DispatcherTimer dt = new DispatcherTimer();
dt.Interval = TimeSpan.FromMilliseconds(1);
dt.Tick += new EventHandler(dt_Tick);
dt.Start();
}
void dt_Tick(object sender, EventArgs e)
{
label2.Content = label1.Content = MediaEL.Position.Hours + ":" + MediaEL.Position.Minutes + ":" + MediaEL.Position.Seconds;
slider2.Value = MediaEL.Position.
if (MediaEL.Position == MediaEL.NaturalDuration && flag_repeate == true)
MediaEL.Position = new TimeSpan(0, 0, 0);
}
private void slider2_GiveFeedback(object sender, GiveFeedbackEventArgs e)
{
TimeSpan ts = new TimeSpan(0, 0, 0, 0, (int)slider2.Value);
MediaEL.Position = ts;
}
#endregion
}
}
ПРИЛОЖЕНИЕ Б
Интерфейс программного пакета:
Рисунок 1 – Исходный вид приложения.
Рисунок 2 – Диалоговое окно – выбор файла.
Рисунок 3 – Воспроизведение аудио файла.
Рисунок 4 – Воспроизведение видео файла.