Разработка приложения для Windows, представляющего собой MP3 плеер

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

разумевает под собой также проектирование методов наилучшего сохранения информации и методов дальнейшей ее обработки вплоть до формирования выходных данных.

После окончания проектирования программы, спроектированные данные были преобразованы в программный код (стадия создания).

На последней стадии универсального процесса разработки ПО - переходный период - происходило тестирование готового программного продукта.

На главной форме программы (см. рисунок 2) располагаются: главное меню, где располагаются кнопки управления - выбор каталога, пауза/воспроизведение, перемещение между треками. Тайминг воспроизведения трека. В центре располагается поле, где формируется список треков. Слева бегунок, обеспечивающий уровень громкости воспроизведения.

Исполняемый файл программы называется Mp3p.exe и для своей работы не требует никаких дополнительных файлов. Файлы проекта расположены в приложении Б.

Рисунок 2. Главное окно программы

 

При работе возникают задержки времени в следующих случаях:

1) При загрузке программы в оперативную память;

2) Задержки, связанные с открытием файлов данных в процессе работы программы;

3) При добавлении, просмотре, изменении записей.

Все остальное время при работе программы выделяется под нужды пользователя и дополнительные подгрузки информации с жесткого диска.

Данная программа не предоставляет возможностей по настройке графического интерфейса под определенного пользователя. Изменение фона окон программы находится под контролем операционной системы, установленной на ПЭВМ.

Настройки по обработке данных в программе также отсутствуют.

Разрабатываемый проект состоит из одного файла (модулей), описание которых приведено в Приложении А.

 

2.2 Текст программы

 

{ MP3 плееер с регулятором громкости.}mp3p_;

 

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Buttons, ExtCtrls, MPlayer, ComCtrls,

, FileCtrl; // эти ссылки вставлены вручную

= class(TForm)

// кнопки: TSpeedButton; // Предыдущая композиция: TSpeedButton; // Воспроизведение/Стоп: TSpeedButton; // Следующая композиция: TSpeedButton; // Выбор папки

: TListBox; // Список композиций (mp3 файлов)

: TMediaPlayer; // медиа плеер

: TTrackBar; // регулятор громкости

: TTimer;: TLabel;: TLabel;

: TShape; // рамка вокруг кнопок

FormCreate(Sender: TObject);ListBox1Click(Sender: TObject);SpeedButton2Click(Sender: TObject);SpeedButton1Click(Sender: TObject);SpeedButton3Click(Sender: TObject);TrackBar1Change(Sender: TObject);Timer1Timer(Sender: TObject);SpeedButton4Click(Sender: TObject);

 

// эти объявления вставлены сюда вручнуюPlay; // воспроизведениеPlayList(Path: string); // формирует список MP3 файлов

 

{ Private declarations }

{ Public declarations };

: TForm1;

 

 

{$R *.dfm}: string[255];,sec: integer; // время воспроизведения: LongWord; // старшее слово - правый канал,

// младшее - левый.

 

// формирует список MP3 файловTForm1.PlayList(Path: string);: PChar; // указатель на nul-terminated строку: string[128]; // обычная Паскаль строка

: TSearchRec; // структура SearchRec содержит информацию

// о файле, удовлетворяющем условию поиска.Clear;

// сформировать список mp3 файловFindFirst(Path + *.mp3, faAnyFile, SearchRec) =0 then

// в каталоге есть файл с расширением WAV

// добавим имя этого файла в список.Items.Add(SearchRec.Name);

// пока в каталоге есть другие файлы с расширением WAV(FindNext(SearchRec) = 0) do.Items.Add(SearchRec.Name);;.ItemIndex := 0; ;

TForm1.FormCreate(Sender: TObject);();.ItemIndex := 0;.Caption:=ListBox1.Items[ListBox1.itemIndex];

.Position := 7;

 

// старшее слово переменной volume - правый канал,

// младшее - левый:= (TrackBar1.Position - TrackBar1.Max+1)* 6500;:= volume + (volume shl 16);(WAVE_MAPPER,volume); // уровень сигнала;

 

// щелчок на названии произведенияTForm1.ListBox1Click(Sender: TObject);

// вывести в поле метки Label1 имя выбранного файлаnot SpeedButton2.DownSpeedButton2.Down := True;.Caption:=ListBox1.Items[ListBox1.itemIndex];;;

 

// щелчок на кнопке ВоспроизведениеTForm1.SpeedButton2Click(Sender: TObject);SpeedButton2.Down then

// пользователь нажал кнопку

// начать воспроизведение

// если кнопка Воспроизведение нажата,

// то повторное нажатие останавливает

// воспроизведение.Stop;.Enabled := False;.Down := False;.Hint := Play;;;

 

0 then.ItemIndex := ListBox1.ItemIndex - 1;;;">// кнопка К предыдущейTForm1.SpeedButton1Click(Sender: TObject);ListBox1.ItemIndex > 0 then.ItemIndex := ListBox1.ItemIndex - 1;;;

 

// кнопка К следующейTForm1.SpeedButton3Click(Sender: TObject);ListBox1.ItemIndex < ListBox1.Count then.ItemIndex := ListBox1.ItemIndex + 1;;;

 

// пользователь изменил положение

// регулятора громкостиTForm1.TrackBar1Change(Sender: TObject);:= 6500* (TrackBar1.Max - TrackBar1.Position);:= volume + (volume shl 16);(WAVE_MAPPER,volume);;

 

 

// воспроизвести композицию,

// название которой выделено

// в списке ListBox1TForm1.Play;.Enabled := False;.Caption:=ListBox1.Items[ListBox1.itemIndex];.FileName := SoundPath + ListBox1.Items[ListBox1.itemIndex];

.Open;EMCIDeviceError do(Ошибка обращения к файлу +.Items[ListBox1.itemIndex]);.Down := False;;;;.Play;:=0;:=0;.Enabled := True;.Hint := Stop;;

 

// сигнал от таймераTForm1.Timer1Timer(Sender: TObject);

// изменить счетчик времениsec < 59inc(sec)begin:=0;(min);;

 

// вывести время воспроизведения.Caption := IntToStr(min)+:;sec < 10Label2.Caption :=.Caption +0+ IntToStr(sec)Label2.Caption :=.Caption + IntToStr(sec);

 

// если воспроизведение текущей композиции

// не завершеноMediaPlayer1.Position < MediaPlayer1.Lengthexit;

 

// воспроизведение текущей композиции

// закончено.Enabled := False; // остановить таймер.Stop; // остановить плеер

ListBox1.ItemIndex < ListBox1.Count // список не исчерпанbegin.ItemIndex := ListBox1.ItemIndex + 1;;;

 

// Щелчок на кнопке Папка

// Выбрать папку, в которой находятся MP3 файлыTForm1.SpeedButton4Click(Sender: TObject);: string; // корневой каталог: PWideChar;: string;:= ; // корневой каталог - папка Рабочий стол(pwRoot, (Length(Root)+1) * 2);:= StringToWideChar(Root,pwRoot,MAX_PATH*2);not SelectDirectory(Выберите папку, pwRoot, Dir)Dir :=Dir := Dir+\;

 

// каталог, в котором находятся MP3 файлы выбран:= Dir;(SoundPath);;

.